?? signal_hw.m
字號:
clear %清空工作空間
clc %清屏
dt=10^-3;
t=0:dt:200;
x1=(1+cos(0.5*2*pi*t)+cos(1.5*2*pi*t)).*cos(30*2*pi*t);
figure(1);
subplot(3,1,1);
plot(t,x1);axis([0 2 -3 3]);hold on;
plot([0,2],[0,0],'k');
title('中頻窄帶信號時域波形');
xlabel('時間 (us)');
ylabel('幅值');
x1_f=abs(fftshift(fft(x1,1024)));x1_frez=x1_f./max(x1_f);
subplot(3,1,3);
Frequency=(-(length(x1_frez)-1)/2:(length(x1_frez)-1)/2)*10^3/length(x1_frez);
bar(Frequency,x1_frez,0.01,'r');axis([-100 100 0 1.2]);
title('中頻窄帶信號歸一化頻譜');
xlabel('頻率 (MHz)');
ylabel('歸一化幅值');
set(gcf,'color','w');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%對信號進行帶通采樣
%將帶寬視為4MHz,可得到最佳采樣頻率8MHz,這樣m=8,具體實現如下所示:
Fs=8;%采樣頻率(MHz)
T=1/Fs;n=0:200/T;
x2=(1+cos(0.5*2*pi*n*T)+cos(1.5*2*pi*n*T)).*cos(30*2*pi*n*T);
figure(2);
subplot(3,1,1);
stem(n*T,x2);axis([0 10 -3 3]);hold on;
plot([0,10],[0,0],'k');
title('中頻窄帶信號帶通采樣后時域波形');
xlabel('時間 (us)');
ylabel('幅值');
x_f=abs(fft(x2,1024));x_frez=x_f./max(x_f);
FFrequency=(-(length(x_frez)-1)/2:(length(x_frez)-1)/2)*8/length(x_frez);
subplot(3,1,3);
bar(FFrequency,x_frez,0.01,'r');axis([0 4 0 1.2]);
title('中頻窄帶信號帶通采樣后的歸一化頻譜');
xlabel('頻率 (MHz)');
ylabel('歸一化幅值');
set(gcf,'color','w');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%其后再將信號分為兩路信號(I,Q)
figure(3);
f_tx=cos(2*pi*Fs/4*n*T);
f_zj=sin(2*pi*Fs/4*n*T);
x_I=x2.*f_tx;
x_Q=(1+cos(0.5*2*pi*n*T)+cos(1.5*2*pi*n*T)).*sin(30*2*pi*n*T).*f_zj;
subplot(221);
stem(n*T,x_I);axis([0 10 -3 3]);hold on;plot([0,10],[0,0],'k');title('I路信號時域波形');xlabel('時間 (us)');ylabel('幅值');
subplot(222);
stem(n*T,x_Q);axis([0 10 -1 1]);hold on;plot([0,10],[0,0],'k');title('Q路信號時域波形');xlabel('時間 (us)');ylabel('幅值');
x_I_f=abs(fft(x_I,1024));x_I_frez=x_I_f./max(x_I_f);
x_Q_f=abs(fft(x_Q,1024));x_Q_frez=x_Q_f./max(x_Q_f);
subplot(223);
bar(FFrequency,x_I_frez,0.01,'r');axis([0 4 0 1.2]);title('I路信號歸一化頻譜');xlabel('頻率 (MHz)');ylabel('歸一化幅值');
subplot(224);
bar(FFrequency,x_Q_frez,0.01,'r');axis([0 4 0 1.2]);title('Q路信號歸一化頻譜');xlabel('頻率 (MHz)');ylabel('歸一化幅值');
set(gcf,'color','w');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%低通濾波器設計,用fdatool工具實現。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%通過低通濾波器后的時域波形和頻譜
figure(4);
f_lowpass=[[0,-0.000003043001573,0,0.00002823954001,-0,-0.000080841935464,-0,0.000163220192617,-0,-0.000277828701621,0,0.000427230093944,0,-0.000614127335845,-0,0.000841406304126,-0,-0.001112191826604,0,0.001429921204123,-0,-0.001798440699917,-0,0.002222132598252,-0,-0.002706083529411,0,0.003256309361809,-0,-0.003880058936574,-0,0.004586229702323,-0,-0.005385945355069,0,0.006293373220817,-0,-0.007326905177661,-0,0.008510905141471,-0,-0.009878367376324,0,0.011475092194636,-0,-0.013366496420962,0,0.015649227666672,-0,-0.018472065152109,0,0.022076107081206,-0,-0.026878790109525,0,0.033669923066071,-0,-0.044143762172087,0,0.062708042398287,-0,-0.105529091414393,0,0.318118177084673,0.5,0.318118177084673,0,-0.105529091414393,-0,0.062708042398287,0,-0.044143762172087,-0,0.033669923066071,0,-0.026878790109525,-0,0.022076107081206,0,-0.018472065152109,-0,0.015649227666672,0,-0.013366496420962,-0,0.011475092194636,0,-0.009878367376324,-0,0.008510905141471,-0,-0.007326905177661,-0,0.006293373220817,0,-0.005385945355069,-0,0.004586229702323,-0,-0.003880058936574,-0,0.003256309361809,0,-0.002706083529411,-0,0.002222132598252,-0,-0.001798440699917,-0,0.001429921204123,0,-0.001112191826604,-0,0.000841406304126,-0,-0.000614127335845,0,0.000427230093944,0,-0.000277828701621,-0,0.000163220192617,-0,-0.000080841935464,-0,0.00002823954001,0,-0.000003043001573,0;]]
dd=size(f_lowpass);
Xc=filter(f_lowpass,1,x_I);
Xs=filter(f_lowpass,1,x_Q);
%mm=size(Sc);
subplot(221);
stem(n*T,Xc);axis([0 20 -3 3]);hold on;plot([0,20],[0,0],'k');title('I路信號通過低通濾波器后時域波形');xlabel('時間 (us)');ylabel('幅值');
subplot(222);
stem(n*T,Xs);axis([0 20 -3 3]);hold on;plot([0,20],[0,0],'k');title('Q路信號通過低通濾波器后時域波形');xlabel('時間 (us)');ylabel('幅值');
Xc_f=abs(fftshift(fft(Xc,1024)));Xc_frez=Xc_f./max(Xc_f);
Xs_f=abs(fftshift(fft(Xs,1024)));Xs_frez=Xs_f./max(Xs_f);
FFFrequency=(-(length(Xc_frez)-1)/2:(length(Xc_frez)-1)/2)*8/length(Xc_frez);
subplot(223);
bar(FFFrequency,Xc_frez,0.01,'r');axis([0 4 0 1.2]);title('I路信號通過低通后歸一化頻譜');xlabel('頻率 (MHz)');ylabel('歸一化幅值');
subplot(224);
bar(FFFrequency,Xs_frez,0.01,'r');axis([0 4 0 1.2]);title('Q路信號通過低通后歸一化頻譜');xlabel('頻率 (MHz)');ylabel('歸一化幅值');
set(gcf,'color','w');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%對信號進行抽采后的時域波形以及頻譜
figure(5)
for i=1:round(length(Xc)/2)
Ac(i)=Xc(i*2-1);
As(i)=Xs(i*2-1);
end
subplot(221);
stem(Ac);axis([0 80 -3 3]);hold on;plot([0,80],[0,0],'k');title('信號進行抽采后時域波形');xlabel('時間 (us)');ylabel('幅值');
subplot(222);
stem(As);axis([0 80 -3 3]);hold on;plot([0,80],[0,0],'k');title('信號進行抽采后時域波形');xlabel('時間 (us)');ylabel('幅值');
Ac_f=abs(fft(Ac,1024));Ac_frez=Ac_f./max(Ac_f);
As_f=abs(fft(As,1024));As_frez=As_f./max(As_f);
FFFrequency=(0:(length(Ac_frez)-1))*4/length(Ac_frez);
subplot(223);
bar(FFFrequency,Ac_frez,0.01,'r');axis([0 4 0 1.2]);title('信號進行抽采后歸一化頻譜');xlabel('頻率 (MHz)');ylabel('歸一化幅值');
subplot(224);
bar(FFFrequency,As_frez,0.01,'r');axis([0 4 0 1.2]);title('信號進行抽采后歸一化頻譜');xlabel('頻率 (MHz)');ylabel('歸一化幅值');
set(gcf,'color','w');
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -