一、實(shí)驗(yàn)?zāi)康?/h3>
1、掌握 傅立葉變換(The Fourier Transform) 及其性質(zhì);
2、掌握連續(xù)時(shí)間信號(hào)傅立葉變換的數(shù)值計(jì)算方法;
3、掌握利用 MATLAB 實(shí)現(xiàn)信號(hào)的幅度調(diào)制(Amplitude Modulation, AM) 的方法;
4、掌握利用 MATLAB 實(shí)現(xiàn)對(duì)周期信號(hào)的頻譜分析。
二、實(shí)驗(yàn)內(nèi)容
1、
MATLAB代碼:
>> clear all;
>> t = -4 : 0.001 : 4;
>> N = input('N = ');
N = 3
>> c0 = 0.5;
>> fN = c0 * ones(1, length(t));
>> for n = 1 : 2 : N
fN = fN + cos(n * pi * t / 2) * sinc(n / 2);
end
>> figure
>> plot(t, fN);
>> title(['N = ' num2str(N)]);
>> xlabel('t');
>> ylabel('f(t)');
>> figure
>> fN = c0 * ones(1, length(t));
>> N = input('N = ');
N = 9
>> for n = 1 : 2 : N
fN = fN + cos(n * pi * t / 2) * sinc(n / 2);
end
>> plot(t, fN);
>> title(['N = ' num2str(N)]);
>> xlabel('t');
>> ylabel('f(t)');
>> figure
>> fN = c0 * ones(1, length(t));
>> N = input('N = ');
N = 24
>> for n = 1 : 2 : N
fN = fN + cos(n * pi * t / 2) * sinc(n / 2);
end
>> plot(t, fN);
>> title(['N = ' num2str(N)]);
>> xlabel('t');
>> ylabel('f(t)');
>> figure
>> fN = c0 * ones(1, length(t));
>> N = input('N = ');
N = 70
>> for n = 1 : 2 : N
fN = fN + cos(n * pi * t / 2) * sinc(n / 2);
end
>> plot(t, fN);
>> title(['N = ' num2str(N)]);
>> xlabel('t');
>> ylabel('f(t)');
公式推導(dǎo):
疊加生成的信號(hào)波形圖:
(1)N = 3:
(2)N = 9:
(3)N = 24:
(4)N = 70:
2、
MATLAB代碼:
(1)、繪制方波信號(hào):
>> clear all;
>> t = -6 : 0.001 : 6;
>> n = round(length(t) / 12);
>> f = [-2 * ones(n, 1); 2 * ones(2 * n, 1); -2 * ones(2 * n, 1); 2 * ones(2 * n, 1);-2 * ones(2 * n, 1); 2 * ones(2 * n, 1); -2 * ones(n + 1, 1)];
>> figure
>> plot(t, f);
>> axis([-6 6 -3 3]);
>> grid on;
>> title('方波信號(hào)', 'FontSize', 14);
>> xlabel('t');
>> ylabel('f(t)');
(2)、進(jìn)行諧波疊加:
>> clear all;
>> t = -4 : 0.001 : 4;
>> fN = 0;
>> N = 2;
>> for n = 1 : N
fN = fN + 4 * (sinc(n / 2) - sinc(n)) * cos(n * pi / 2 * t);
end
>> m = round(length(t) / 8);
>> figure
>> subplot(2, 2, 1);
>> f = [2 * ones(m, 1); -2 * ones(2 * m, 1); 2 * ones(2 * m, 1); -2 * ones(2 * m, 1); 2 * ones(m + 1, 1)];
>> plot(t, f);
>> grid on;
>> axis([-4 4 -3 3]);
>> hold on;
>> plot(t, fN);
>> title('1~2次諧波疊加', 'FontSize', 14);
>> xlabel('t');
>> ylabel('f(t)');
>> subplot(2, 2, 2);
>> fN = 0;
>> N = 4;
>> for n = 1 : N
fN = fN + 4 * (sinc(n / 2) - sinc(n)) * cos(n * pi / 2 * t);
end
>> plot(t, f);
>> grid on;
>> axis([-4 4 -3 3]);
>> hold on;
>> plot(t, fN);
>> title('1~4次諧波疊加', 'FontSize', 14);
>> xlabel('t');
>> ylabel('f(t)');
>> subplot(2, 2, 3);
>> fN = 0;
>> N = 6;
>> for n = 1 : N
fN = fN + 4 * (sinc(n / 2) - sinc(n)) * cos(n * pi / 2 * t);
end
>> plot(t, f);
>> grid on;
>> axis([-4 4 -3 3]);
>> hold on;
>> plot(t, fN);
>> title('1~6次諧波疊加', 'FontSize', 14);
>> xlabel('t');
>> ylabel('f(t)');
>> subplot(2, 2, 4);
>> fN = 0;
>> N = 100;
>> for n = 1 : N
fN = fN + 4 * (sinc(n / 2) - sinc(n)) * cos(n * pi / 2 * t);
end
>> plot(t, f);
>> grid on;
>> axis([-4 4 -3 3]);
>> hold on;
>> plot(t, fN);
>> title('1~100次諧波疊加', 'FontSize', 14);
>> xlabel('t');
>> ylabel('f(t)');
生成的信號(hào)波形圖:
(1)、方波信號(hào):
(2)、諧波疊加結(jié)果:
3、
求傅里葉級(jí)數(shù)過程:
MATLAB代碼:
>> clear all;
>> N = 10;
>> n1 = -N : -1;
>> C1 = 4 * j * sin(n1 * pi / 2) / pi ^ 2 ./ n1 .^ 2;
>> C0 = 0;
>> n2 = 1 : N;
>> C2 = 4 * j * sin(n2 * pi / 2) / pi ^ 2 ./ n2 .^ 2;
>> Cn = [C1, C0, C2];
>> n = -N : N;
>> figure
>> subplot(2, 1, 1);
>> stem(n, abs(Cn));
>> axis([-10 10 0 0.5]);
>> grid on;
>> ylabel('Cn的幅度譜');
>> subplot(2, 1, 2);
>> stem(n, angle(Cn));
>> grid on;
>> ylabel('Cn的相位譜');
>> xlabel('\omega/\omega_0');
生成的幅度譜和相位譜:
4、
求傅里葉級(jí)數(shù)過程:
MATLAB代碼:
>> clear all;
>> n1 = -10 : -1;
>> n2 = 1 : 10;
>> C1 = 2 * sinc(n1 / 2) + 4 * j * sin(n1 * pi / 2) / pi ^ 2 ./ n1 .^ 2;
>> C2 = 2 * sinc(n2 / 2) + 4 * j * sin(n2 * pi / 2) / pi ^ 2 ./ n2 .^ 2;
>> C0 = 0;
>> n = -10 : 10;
>> Cn = [C1, C0, C2];
>> figure
>> subplot(2, 1, 1);
>> stem(n, abs(Cn));
>> grid on;
>> ylabel('Cn的幅度譜');
>> subplot(2, 1, 2);
>> stem(n, angle(Cn));
>> grid on;
>> ylabel('Cn的相位譜');
>> xlabel('\omega/\omega_0');
生成的幅度譜和相位譜:
5、思考題
第2題中所提及的不同的產(chǎn)生方波信號(hào)的方法,分別有什么優(yōu)點(diǎn)與缺點(diǎn)?
答:
用本題中的方法產(chǎn)生方波信號(hào)的缺點(diǎn)是較為復(fù)雜,需要將一個(gè)周期分割成若干部分,并對(duì)每一部分分別賦值;優(yōu)點(diǎn)是免去了占空比的計(jì)算,且信號(hào)不一定以y = 0為中心上下振動(dòng);用square函數(shù)產(chǎn)生方波信號(hào)的優(yōu)點(diǎn)是函數(shù)調(diào)用較為簡(jiǎn)單;缺點(diǎn)是需要先已知或通過計(jì)算得出信號(hào)的占空比,且只能繪制關(guān)于x軸上下對(duì)稱(以y=0為中心振動(dòng))的方波信號(hào)。
三、實(shí)驗(yàn)收獲與感想:
1、 遇到新的函數(shù),可以在命令行中輸入 “help + 函數(shù)名”命令來了解此函數(shù)的用法;
2、 sinc函數(shù)的兩種定義:
MATLAB R2020a中的sinc函數(shù)是歸一化的sinc函數(shù)。
3、 繪制方波時(shí)最好在一張圖上繪制2~3個(gè)周期;
4、 函數(shù)用法:ones(n, 1); num2str( ); title函數(shù)的格式化用法; abs(Z); angle(Z);文章來源:http://www.zghlxwxcb.cn/news/detail-803027.html
三、參考書目
《信號(hào)與系統(tǒng)(第二版)》,【美】Alan V. Oppenheim 等 著,劉樹棠 譯,北京,電子工業(yè)出版社,2020年8月。文章來源地址http://www.zghlxwxcb.cn/news/detail-803027.html
到了這里,關(guān)于【信號(hào)與系統(tǒng)】【北京航空航天大學(xué)】實(shí)驗(yàn)三、連續(xù)時(shí)間信號(hào)的頻域分析 【MATLAB】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!