一、设计任务
- 编制MATLAB程序,实现任意两输入信号的卷积和运算,并正确显示输入信号、输出信号的波形。(程序文件名:ConvSum_本人姓名首拼小写.m,本程序不允许使用conv函数)
- 输入信号x为频率0.1 Hz和0.3 Hz的等幅正弦波之和,利用fir1函数设计滤波器h,去除0.3 Hz的正弦信号,得到输出信号y。用freqz函数观察滤波器h的频率响应。显示输入信号x和输出信号y的波形。用fft函数对信号做快速傅里叶变换,并显示输入输出信号的幅频曲线。(程序文件名:FilterLP_本人姓名首拼小写.m)
二、要求
- 提交设计报告word版(文件命名:SSDR1姓名学号)和源程序组成的压缩包(压缩包名:姓名学号SS课程设计1);
- 报告重点阐述原理、分析、计算过程、核心代码分析、结果、结论、收获与体会等内容。
三、设计原理与过程
1、ConvSum
原理:
卷积是信号处理中的一种重要运算,它可以描述两个信号之间的相互作用关系。MATLAB中提供了conv函数用于计算两个信号的卷积运算。如果不使用conv函数,我们可以通过嵌套循环来实现卷积运算。
具体过程:
定义两个输入信号x1和x2;
确定输出信号的长度为输入信号长度之和减一,即N1+N2-1;
使用两个循环分别遍历所有可能的卷积位置,并按照卷积公式计算输出信号的每个样本值;
使用subplot函数在一个图像窗口中显示输入信号和输出信号的波形;
使用stem函数绘制离散信号的波形,title函数添加标题,xlabel和ylabel函数添加坐标轴标签。
程序源代码:
% 输入信号
x1 = [1 2 3 4];
x2 = [1 1 1];
% 卷积运算
N1 = length(x1);
N2 = length(x2);
y = zeros(1, N1+N2-1);
for n = 1:N1+N2-1
for k = max(1