信號調制與解調 matlab仿真
- 原始信號--頻譜為cos(Wt*w)函數,外形如饅頭
- 調制
- 解調
- 傅里葉變換
- 測試FT的頻譜是否為鋸齒波
- 理想低通濾波器,截至頻率Wm
- 傅里葉變換
- 頻譜為鋸齒波函數的時域信號函數
- 傅里葉變換
- 調制頻率1
- 理想低通濾波
- 調制頻率2
- 理想低通濾波
% 調制定理演示Demo % 頻域三角信號×G(w)門函數,得到鋸齒波頻譜 %解 [MATLAB程序]
T = 20; %采樣周期 dt = 0.02; %積分時間, 采樣時間 t = -T/2:dt:T/2;
原始信號--頻譜為cos(Wt*w)函數,外形如饅頭
Wm = 5; % 截至角頻率--與橫坐標交點 Wt = pi/(2*Wm); % cos(Wt*w) ft = Wm*sinc(Wm*(t+Wt)/pi) + Wm*sinc(Wm*(t-Wt)/pi); ft = ft / (2*pi); % 乘以系數Wc = 15; % 調制信號角頻率Wc
調制
ft1 = ft .* cos(Wc*t); % 使用cos(Wc*t)調制ft
解調
ft2 = ft1 .* cos(Wc*t); % 使用cos(Wc*t)解調ft
傅里葉變換
W1 = 50; N = 500; k = -N:N; W = k*W1/N; % f(t)傅里葉變換 F0 = ft*exp(-j*t'*W)*dt; %求F(t)的傅里葉變換F1(jw) F0 = abs(F0); F1 = ft1*exp(-j*t'*W)*dt; %求F(t)*cos(Wc*t)的傅里葉變換F1(jw) F1 = abs(F1); F2 = ft2*exp(-j*t'*W)*dt; %求f1(t)*cos(Wc*t)*cos(Wc*t)的傅里葉變換F1(jw) F2 = abs(F2);%%顯示波形 subplot(3,1,1) plot(W, F0, ':', W, F1, W, F2, 'linewidth', 2) legend('F(t)信號頻譜', '用cos(Wc*t)調制后頻譜', '用cos(Wc*t)解調后頻譜'); xlabel('ω') ylabel('|F(jω)|') title('F(t)信號調制解調頻譜')
測試FT的頻譜是否為鋸齒波
T = 20; % 采樣周期 Fs = 100; % 采樣頻率 dt = 1/Fs; % 積分時間, 采樣時間 t = -T/2:dt:T/2;
理想低通濾波器,截至頻率Wm
Wm = 2*pi*9; % 理想低通濾波器的截至頻率 filter = Wm/pi*sinc(Wm*t/pi); % Wc/π*Sa(Wc*t) 理想低通濾波函數
傅里葉變換
W1 = 2*pi*100; N = 500; k = -N:N; W = k*W1/N;
頻譜為鋸齒波函數的時域信號函數
Wc = 2*pi*5; % 基本頻率 W0 = 2*pi*30; % 頻移--移出2個信號ft = Wc/pi.*(sinc(Wc*t/pi).^2); % 頻譜為三角信號的函數 fr1 = Wc/pi.*sinc(Wc*t/pi).*exp(-j*Wc*t); % 頻譜為G(w)門函數(移頻) ft1 = conv2(ft, fr1, 'same')*dt; % 頻域三角信號×G(w)門函數,得到鋸齒波頻譜 ft1 = ft1.*exp(j*W0*t);fr2 = Wc/pi.*sinc(Wc*t/pi).*exp(j*Wc*t); % 頻譜為G(w)門函數(移頻) ft2 = conv2(ft, fr2, 'same')*dt; % 頻域三角信號×G(w)門函數,得到鋸齒波頻譜 ft2 = ft2.*exp(-j*W0*t); ft = ft1 + ft2;
傅里葉變換
F3 = ft*exp(-j*t'*W)*dt; %求f1(t)的傅里葉變換F1(jw) F3 = abs(F3);
調制頻率1
Fy = 22; % 調制頻率 ft1 = ft.*cos(2*pi*Fy*t); % 調制信號
理想低通濾波
ft1 = conv2(ft1, filter, 'same')*dt; % 理想低通濾波 F4 = ft1*exp(-j*t'*W)*dt; %求f1(t)的傅里葉變換F1(jw) F4 = abs(F4);subplot(3,1,2) plot(W/(2*pi), F3, ':', W/(2*pi), F4, 'linewidth', 2); legend('100Hz采樣頻率頻譜', 'cos(2\pi22t)調制后頻譜'); xlabel('頻率Hz')
調制頻率2
Fy = 25; % 調制頻率 ft2 = ft.*cos(2*pi*Fy*t); % 調制信號
理想低通濾波
ft2 = conv2(ft2, filter, 'same')*dt; % 理想低通濾波 F4 = ft2*exp(-j*t'*W)*dt; %求f1(t)的傅里葉變換F1(jw) F4 = abs(F4);subplot(3,1,3) plot(W/(2*pi), F3, ':', W/(2*pi), F4, 'linewidth', 2); legend('100Hz采樣頻率頻譜', 'cos(2\pi25t)調制后頻譜'); xlabel('頻率Hz')
還可以直接利用采樣頻移,
?使用采樣頻移可參見不同采樣率的頻譜-CSDN博客