以下程序是我学习阶段总结的,特此写出来供大家参考,转载请注明!

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的快速傅立叶分析程序设计相关推荐

  1. 用matlab画出TFT,基于Matlab的TFT-LCD解码电路的仿真设计(含程序)

    基于Matlab的TFT-LCD解码电路的仿真设计(含程序)(17300字) 摘要: TFT-LCD技术是微电子技术和 LCD技术巧妙结合的高新技术.TFT-LCD代表了一个新的技术时代,一个比CRT ...

  2. matlab仿真直流电机,[转载]基于Matlab/Simulink的无刷直流电机控制仿真研究

    摘要: 基于Matlab/Simulink,本文设计了一个无刷直流电机的控制方案,详细阐述了无刷直流电机的运行原理,并用Matlab/Simulink对其进行了仿真.实验证明,用Matlab/Simu ...

  3. matlab绘图z=sin(x_「matlab画三维图」Matlab 应用之绘制三维图形(基础篇) - seo实验室...

    matlab画三维图 在Matlab中,三维图形的绘制包括三维曲线,三维网线图和三维曲面图.闲话不多说,直接进入正题.首先介绍几个函数: 1.plot3(x,y,z,-) 其中,x,y,z为维数相同的 ...

  4. matlab功率谱的峰值,基于Matlab功率谱密度估计方法.doc

    基于Matlab功率谱密度估计方法 基于Matlab功率谱密度估计方法要在实际情况下, 许多平稳信号无法导出数学表达式, 要准确获取这些信号的功率谱密度存在一定的困难.根据维纳辛钦 (Wiener K ...

  5. Matlab之DNN:基于Matlab利用神经网络模型(epochs=10000000)预测勒布朗詹姆斯的2018年总决赛(骑士VS勇士)第一场得分、篮板、助攻

    Matlab之DNN:基于Matlab利用神经网络模型(epochs=10000000)预测勒布朗詹姆斯的2018年总决赛(骑士VS勇士)第一场得分.篮板.助攻 目录 输出结果 预测勒布朗詹姆斯的20 ...

  6. 如何用Matlab建立信用风险模型,基于Matlab计算的KMV模型在商业银行信用风险管理中的实践应用.pdf...

    科技论坛 2014.6 基于Matlab计算的KMV模型在商业银行信用风险管理中的 应用 李 园 (天津大学管理与经济学部,天津,300072) 摘要:社会经济的不断发展,金融行业也处于不断发展之中, ...

  7. matlab利用霍夫,基于matlab的霍夫变换

    霍夫变换(限量版) 基于matlab的霍夫变换 一.简单介绍 Hough变换是图像处理中从图像中识别几何形状的基本方法之一. Hough变换的基本原理在于利用点与线的对偶性,将原始图像空间的给定的曲线 ...

  8. matlab 2ask,(最新整理)基于MATLAB的2ASK和2FSK调制仿真(通信原理实验报告)

    <(最新整理)基于MATLAB的2ASK和2FSK调制仿真(通信原理实验报告)>由会员分享,可在线阅读,更多相关<(最新整理)基于MATLAB的2ASK和2FSK调制仿真(通信原理实 ...

  9. matlab中eacf函数,基于MATLAB的切比雪夫I型模拟低通滤波器设计

    基于MATLAB的切比雪夫I型模拟低通滤波器设计课程设计名称:数字信号处理课程设计专业班级 : 电信0604 学生姓 名 : 学号 : 20064300430 指导教师 : 课程设计时间:2009.6 ...

最新文章

  1. 怎样设置html的元素属性,Jquery怎么设置元素的属性和样式?
  2. 【结论】【dfs】费解的开关(joyoi-tyvj 1266)
  3. 九度oj 题目1380:lucky number
  4. 自己的利益,还是用户的名义?
  5. 理解JS的6种继承方式
  6. Python标准库中的io
  7. python变量图片_在Python中向3D图添加第4个变量
  8. StrongShop跨境电商系统源码 | 支持多语言多货币
  9. TouchPanel--Qcom DRM休眠唤醒通知链的注册及回调流程
  10. android手势解锁代码,纯android代码实现九宫格手势密码
  11. Nova 组件如何协同工作 - 每天5分钟玩转 OpenStack(24)
  12. 游侠随笔:关于业务型数据库审计 有图有真相
  13. 设置linux睡眠时间,Linux 睡眠时间函数如何使用?延迟指定时间sleep命令了解一下...
  14. MODIS与Landsat获取LST数据
  15. 中国大学moocpython答案查询_中国大学MOOC(慕课)_Python编程基础_mooc题库答案查询...
  16. mysql如何进行数据透视_使用MySQL的数据透视表
  17. openvino只支持英特尔6代以上的cpu
  18. AGV小车的运动是怎么控制的呢?
  19. 值得一看的网络课程推荐(不限于计算机科学)
  20. 如何修改大商创头部色调

热门文章

  1. 基于内容的图片检索CBIR简介
  2. 从头开始敲代码之《从BaseApplication/Activity开始(五)》(自定义控件,实现点击/滑动翻页)
  3. 实现QQ登陆(QQ互联)
  4. 上兵伐谋,其次伐交,其次伐兵,其下攻城
  5. FTP上传或下载偶尔出现文件为空
  6. Linux内存控制器(二)
  7. 阿里云王牌架构师一问开发者:系统要改造成微服务吗
  8. 蛋花花分析到底该不该让孩子学编程
  9. python 复制并重命名文件_基于python实现复制文件并重命名
  10. 科学家表示英国脱欧可能会终结其在AI领域的领导地位