如何用matlab画紫罗兰,[转载]基于MATLAB的快速傅立叶分析程序设计
以下程序是我学习阶段总结的,特此写出来供大家参考,转载请注明!
1.已知信号数据
对一个人为产生的信号进行采用FFT变换方法进行功率谱分析。已知信号x(n)=120.0*COS(2*3.14*SF*n/FS)
式中: n=0,1,2
……N-1 SF---信号频率 FS---采样频率
这里,定义参数如下:
fs=200;%设定采样频率
N=512;
sf=10;%设定余弦信号频率
采样点=1024;
2.信号的时域波形和频域波形绘制
fs=200;%设定采样频率
N=512;
n=0:N-1;
t=n/fs;
sf=10;%设定正弦信号频率
%生成信号
x=120.0*cos(2*3.14*sf*t);
figure;
plot(t,x);%作余弦信号的时域波形
xlabel('t');
ylabel('y');
title('x=120.0*cos(2*3.14*sf*t)时域波形');
grid;
%进行FFT变换并做频谱图
y=fft(x,N);%进行fft变换
mag=abs(y);%求幅值
f=(0:length(y)-1)'*fs/length(y);%进行对应的频率转换
figure;
plot(f,mag);%做频谱图
xlabel('频率(Hz)');
ylabel('幅值');
title('x=120.0*cos(2*3.14*sf*t)幅频谱图N=512');
grid;
Py
=2*(y.*conj(y))/N; %计算功率谱密度Py
figure;
plot(f,Py);
xlabel('频率(Hz)');
ylabel('功率谱密度');
title('x=120.0*cos(2*3.14*sf*t)功率谱密度');
grid;
在前面程序的基础上,继续输入加窗处理程序,可以得到上面所示的结果,其加窗处理程序如下:
w_han=(hanning(N))';
y1=x.*w_han;
figure;
plot(t,y1);
y2=mag.*w_han;
figure;
plot(f,y2);
w_box=(boxcar(N))';
y3=x.*w_box;
figure;
plot(t,y3);
y4=mag.*w_box;
figure;
plot(f,y4)
w_ham=(hamming(N))';
y5=x.*w_ham;
figure;
plot(t,y5);
y6=mag.*w_ham;
figure;
plot(f,y6)
w_tri=(triang(N))';
y7=x.*w_tri;
figure;
plot(t,y7);
y8=mag.*w_tri;
figure;
plot(f,y8)
w_black=(blackman(N))';
y9=x.*w_black;
figure;
plot(t,y9);
y10=mag.*w_black;
figure;
plot(f,y10)
3.典型函数的频谱(矩形窗函数,
汉宁窗函数,三角窗函数,切比雪夫窗)
设计方法:主要应用了MALTAB中的交互式图形用户界面以及直接编程来做信号的处理过程,其设计过程如下:
1)图形用户界面的启动:在MATLAB
COMMAND窗口下,键入sptool,会弹出一个SPTool窗口。
2)在进行处理之前,我们需要建立一个所要处理的信号公式,即已知信号x(n)=120.0*cos(2*3.14*SF*n/FS),MATLAB提供了编程的代码,其代码如下:
Fs=200;%设定采样频率
N=512;
n=0:N-1; t=n/Fs;
sf=10;%设定余弦信号频率
x=120.0*cos(2*3.14*sf*t); %生成信号
plot(t,x)
grid
save hdata.mat x Fs %把已知信号保存到了工作空间中,以备调用
这样程序运行结果会生成信号数据文件hdata.mat,存放信号x和采样频率的数据。
3)从SPTool窗口中的File菜单中选择Import命令,弹出Import to
SPTool窗。
设置好后,点击OK。
4)这样就可以进行信号的时域分析了,只需要点击下图中Signals中所导入的已知信号就可以了。
5)如上图所示的Spectra为信号的频谱分析工具栏,选好所导入的已知信号,点击Crate按钮,进入频谱分析的窗口。
通过上面图形所示,我们可以从左边的工具栏上选择各种窗函数,并且可以随意定义Nfft和Nwind的大小,方法比较简单直观。
同样,我们还可以用编程的方法实现上面要求,其各种窗函数及程序代码如下所示:
典型窗函数的频谱程序如下所示:
生成一个长度为50的矩形窗,并观察其频率特性
n=50;
window=boxcar(n);
[h,w]=freqz(window,1);
subplot(2,1,1)
stem(window);
subplot(2,1,2);
plot(w/pi,20*log(abs(h)/abs(h(1))));
生成一个长度为60的汉宁窗,并观察其频率特性
n=60;
window=hanning(n);
[h,w]=freqz(window,1);
subplot(1,2,1)
stem(window);
subplot(1,2,2);
plot(w/pi,20*log(abs(h)/abs(h(1))));
生成一个长度为40的三角窗,并观察其频率特性
n=40;
window=triang(n);
[h,w]=freqz(window,1);
subplot(1,2,1)
stem(window);
subplot(1,2,2);
plot(w/pi,20*log(abs(h)/abs(h(1))));
生成一个长度为40的切比雪夫窗,并观察其频率特性
n=50;
r=50;
window=chebwin(n,r);
[h,w]=freqz(window,1);
subplot(1,2,1)
stem(window);
subplot(1,2,2)
plot(w/pi,20*log(abs(h)/abs(h(1))));
如何用matlab画紫罗兰,[转载]基于MATLAB的快速傅立叶分析程序设计相关推荐
- 用matlab画出TFT,基于Matlab的TFT-LCD解码电路的仿真设计(含程序)
基于Matlab的TFT-LCD解码电路的仿真设计(含程序)(17300字) 摘要: TFT-LCD技术是微电子技术和 LCD技术巧妙结合的高新技术.TFT-LCD代表了一个新的技术时代,一个比CRT ...
- matlab仿真直流电机,[转载]基于Matlab/Simulink的无刷直流电机控制仿真研究
摘要: 基于Matlab/Simulink,本文设计了一个无刷直流电机的控制方案,详细阐述了无刷直流电机的运行原理,并用Matlab/Simulink对其进行了仿真.实验证明,用Matlab/Simu ...
- matlab绘图z=sin(x_「matlab画三维图」Matlab 应用之绘制三维图形(基础篇) - seo实验室...
matlab画三维图 在Matlab中,三维图形的绘制包括三维曲线,三维网线图和三维曲面图.闲话不多说,直接进入正题.首先介绍几个函数: 1.plot3(x,y,z,-) 其中,x,y,z为维数相同的 ...
- matlab功率谱的峰值,基于Matlab功率谱密度估计方法.doc
基于Matlab功率谱密度估计方法 基于Matlab功率谱密度估计方法要在实际情况下, 许多平稳信号无法导出数学表达式, 要准确获取这些信号的功率谱密度存在一定的困难.根据维纳辛钦 (Wiener K ...
- Matlab之DNN:基于Matlab利用神经网络模型(epochs=10000000)预测勒布朗詹姆斯的2018年总决赛(骑士VS勇士)第一场得分、篮板、助攻
Matlab之DNN:基于Matlab利用神经网络模型(epochs=10000000)预测勒布朗詹姆斯的2018年总决赛(骑士VS勇士)第一场得分.篮板.助攻 目录 输出结果 预测勒布朗詹姆斯的20 ...
- 如何用Matlab建立信用风险模型,基于Matlab计算的KMV模型在商业银行信用风险管理中的实践应用.pdf...
科技论坛 2014.6 基于Matlab计算的KMV模型在商业银行信用风险管理中的 应用 李 园 (天津大学管理与经济学部,天津,300072) 摘要:社会经济的不断发展,金融行业也处于不断发展之中, ...
- matlab利用霍夫,基于matlab的霍夫变换
霍夫变换(限量版) 基于matlab的霍夫变换 一.简单介绍 Hough变换是图像处理中从图像中识别几何形状的基本方法之一. Hough变换的基本原理在于利用点与线的对偶性,将原始图像空间的给定的曲线 ...
- matlab 2ask,(最新整理)基于MATLAB的2ASK和2FSK调制仿真(通信原理实验报告)
<(最新整理)基于MATLAB的2ASK和2FSK调制仿真(通信原理实验报告)>由会员分享,可在线阅读,更多相关<(最新整理)基于MATLAB的2ASK和2FSK调制仿真(通信原理实 ...
- matlab中eacf函数,基于MATLAB的切比雪夫I型模拟低通滤波器设计
基于MATLAB的切比雪夫I型模拟低通滤波器设计课程设计名称:数字信号处理课程设计专业班级 : 电信0604 学生姓 名 : 学号 : 20064300430 指导教师 : 课程设计时间:2009.6 ...
最新文章
- 怎样设置html的元素属性,Jquery怎么设置元素的属性和样式?
- 【结论】【dfs】费解的开关(joyoi-tyvj 1266)
- 九度oj 题目1380:lucky number
- 自己的利益,还是用户的名义?
- 理解JS的6种继承方式
- Python标准库中的io
- python变量图片_在Python中向3D图添加第4个变量
- StrongShop跨境电商系统源码 | 支持多语言多货币
- TouchPanel--Qcom DRM休眠唤醒通知链的注册及回调流程
- android手势解锁代码,纯android代码实现九宫格手势密码
- Nova 组件如何协同工作 - 每天5分钟玩转 OpenStack(24)
- 游侠随笔:关于业务型数据库审计 有图有真相
- 设置linux睡眠时间,Linux 睡眠时间函数如何使用?延迟指定时间sleep命令了解一下...
- MODIS与Landsat获取LST数据
- 中国大学moocpython答案查询_中国大学MOOC(慕课)_Python编程基础_mooc题库答案查询...
- mysql如何进行数据透视_使用MySQL的数据透视表
- openvino只支持英特尔6代以上的cpu
- AGV小车的运动是怎么控制的呢?
- 值得一看的网络课程推荐(不限于计算机科学)
- 如何修改大商创头部色调