北工大matlab作业实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北工大MATLAB实验报告
完成日期:2018.12
目录
实验一用FFT进行谱分析 (3)
一、实验内容 (3)
二、实验过程 (3)
三、实验代码 (4)
四、实验结果及分析 (5)
五、实验心得 (5)
实验二噪声数据的抑制 (6)
一、实验内容 (6)
二、实验过程 (7)
三、实验结果分析 (14)
四、实验心得 (15)
参考文献 (15)
实验一用FFT进行谱分析
一、实验内容
FFT的用途之一是找出隐藏或淹没在噪声时域信号中信号的频率成分。本题要求用FFT 对试验数据进行谱分析,指出数据包含的频率成份。
提示:首先建立试验数据。过程推荐如下:生成一个包含两个频率成分的试验信号,对这个信号加入随机噪声,形成一个加噪信号y。(试验数据参数推荐为:数据采样频率为1000Hz,时间区间从t=0到t=0.25,步长0.001秒,噪声的标准偏差为2,两个频率成分的试验信号可取50Hz和120Hz)。
(1)绘制加噪信号y它的波形。
(2)求出含噪声信号y的离散傅立叶变换(取它的FFT),(FFT试验参数推荐为:256点)。
(3)求出信号的功率谱密度(它是不同频率所含能量的度量),并绘制功率谱图,标记出两个频谱峰值对应的频率分量。
二、实验过程
1.打开matlab软件,根据实验要求,用已知条件求出重要参数:
N=256;
n=0:N-1;
t=n/fs;
2.绘制加入了噪声信号的y图象:
y=sin(2*pi*50*t)+sin(2*pi*120*t)+2*randn(size(t));
subplot(2,2,1);
plot(y);title('y的波形');
3.对y求付里叶变换:
Y=fft(y,N);
4.绘制Y的幅值图象:
fudu=abs(Y);
f=n*fs/N;
subplot(2,2,2)
plot(f,fudu);
5.抽取256点进行绘图:
subplot(2,2,3)
plot(f(1:N/2),fudu(1:N/2));
6.利用y的自相关函数求出y的功率谱,并绘图:
y2=xcorr(y,'unbiased');
y2p=fft(y2,N);
yk=abs(y2p);
subplot(2,2,4)
plot(f(1:N/2),yk(1:N/2));title('功率谱')
三、实验代码
N=256;
n=0:N-1;
t=n/fs;
y=sin(2*pi*50*t)+sin(2*pi*120*t)+2*randn(size(t)); subplot(2,2,1);
plot(y);title('y的波形');
Y=fft(y,N);
fudu=abs(Y);
f=n*fs/N;
subplot(2,2,2)
plot(f,fudu)
subplot(2,2,3)
plot(f(1:N/2),fudu(1:N/2));
y2=xcorr(y,'unbiased');
y2p=fft(y2,N);
yk=abs(y2p);
subplot(2,2,4)
plot(f(1:N/2),yk(1:N/2));title('功率谱')
四、实验结果及分析
结果分析:功率谱的两个峰值对应的频率分别为:f=50Hz和120Hz
五、实验心得
学习了一个学期的MATLAB,现在终于能够进行一次实践了。实验过程中,总会出现一些错误。这些错误经常是因为错误使用标点造成的。所以,在编程的过程中要十分小心。虽然这只是一次小实验,但我感觉到了这个软件功能的强大,以后我还会更加深入地学习。
实验二 噪声数据的抑制
一、 实验内容
考虑一组实际数据,它可以用以下公式建模:
11.02cos(284)040()2
0n
n n x n ππ⎧++≤≤⎪
=⎨⎪⎩
其它
可以看出,这是在缓慢变化的指数信号分量(1.02n
)上叠加了一个正弦干扰噪声序列。试设计一种算法(滤波器),要求在()x n 中能够抑制、甚至消除这个正弦干扰噪声。 提示:可以考虑用L 点移动平均滤波器(MA )对()x n 进行滤波处理,若L=3,并用()x n 作为MA 滤波器的输入信号,则其输出:
[]2
1()()
31
()(1)(2)3
i y n x n i x n x n x n ==-=+-+-∑
是3个最近的输入值的数字平均。3点MA 的框图模型见图。
图3点MA 滤波器的框图
更长长度的MA 滤波器有可能产生更好的噪声抑制效果,请试验选取7点MA 滤波器,即:
6
1()()7i y n x n i ==-∑
给出试验结果。
二、实验过程
1.打开simulink,并选择所需要的模板,然后开始放置元件
2.首先产生一个指数信号
(1)我一开始用的是rate limiter来产生时钟信号n
(2)后来发现可以用ramp产生时间信号,使图象更加简单
(3)设置参数:
(4)然后进行一次仿真,波形图如下: