gusucode.com > matlab通信工程仿真源码(张德丰等编著)程序书籍 > matlab_code/matlab通信工程仿真源码(张德丰等编著)/第9章/li9_9.m

    clear;
i=imread('colorbar.tif');%也可以用其他格式的图像文件
figure(1);
imshow(i);
i=double(i);
[m,n,p]=size(i);
i=-(0.75-0.125)./(255).*i+0.75; %计算为0.125到0.75电平
%三基色分离
r=i(:,:,1);
g=i(:,:,2);
b=i(:,:,3);
r=reshape(r',1,m*n); %转换为一维(红)
g=reshape(g',1,m*n); %转换为一维(绿)
b=reshape(b',1,m*n); %转换为一维(蓝)

y=0.30*r+0.59*g+0.11*b; %亮度
r_y=r-y; %色差R0
b_y=b-y; %色差B0
v=0.877*r_y; %色差电平压缩
u=0.493*b_y; %色差电平压缩

f_c=283.5*15625; %副载波频率
tuY=[interp1(y,(1:n/980:m*n),'nearest')]; %插值:行采样980点
tuV=[interp1(v,(1:n/980:m*n),'nearest')]; %插值
tuU=[interp1(u,(1:n/980:m*n),'nearest')]; %插值
%全电视信号产生
for h=1:(m-2)
    s(1280*h+(1:102))=0.75; %消隐脉冲
    s(1280*h+(103:197))=1; %行同步头
    s(1280*h+(198:300))=0.75; %消隐脉冲
    s(1280*h+(301:1280))=tuY(h*980+(-1:978)); %图像一行像素-亮度
    %色差v
    sv(1280*h+(1:300))=0; %消隐部分
    sv(1280*h+(220:265))=0.12; %色同步选通
    sv(1280*h+(301:1280))=tuV(h*980+(-1:978)); %图像信号部分
    %色差u
    su(1280*h+(1:300))=0;
    su(1280*h+(301:1280))=tuU(h*980+(-1:978));
end
t=0:0.5e-7:0.5e-7*(length(s)-1); %计算时间点序列,采样率20MHz
f_v=sv.*cos(2*pi*f_c.*t); %色差信号正交调制
f_u=su.*sin(2*pi*f_c.*t);
c=f_v+f_u; %调制输出的色差信号
TVsignal=s+c; %合成彩色电视信号
%彩色电视信号
figure(2);
plot(t,TVsignal);
xlabel('时间');
%亮度信号
figure(3);
plot(t,s);
xlabel('时间');
%功率谱计算
[pxxcc,f]=psd(c,1e5,2e7); %FFT长度为1e5点,故频率分辨率为100Hz
%亮度信号频谱
figure(4);
plot(f,10*log10(pxxcc),'r');
hold on;
[pxx,f]=psd(s,1e5,2e7);
figure(4);
plot(f,10*log10(pxx),'k');
xlabel('频率Hz');
ylabel('功率谱密度dB');