C语言我不行,Matlab语言行么?

经典功率谱估计

直接法:

直接法又称周期图法,它是把随机序列x(n)的N个观测数据视为一能量有限的序列,直接计算x(n)的离散傅立叶变换,得X(k),然后再取其幅值的平方,并除以N,作为序列x(n)真实功率谱的估计。

Matlab代码示例:

clear;

Fs=1000; %采样频率

n=0:1/Fs:1;

%产生含有噪声的序列

xn=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n));

window=boxcar(length(xn)); %矩形窗

nfft=1024;

[Pxx,f]=periodogram(xn,window,nfft,Fs); %直接法

plot(f,10*log10(Pxx));

间接法:

间接法先由序列x(n)估计出自相关函数R(n),然后对R(n)进行傅立叶变换,便得到x(n)的功率谱估计。

Matlab代码示例:

clear;

Fs=1000; %采样频率

n=0:1/Fs:1;

%产生含有噪声的序列

xn=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n));

nfft=1024;

cxn=xcorr(xn,'unbiased'); %计算序列的自相关函数

CXk=fft(cxn,nfft);

Pxx=abs(CXk);

index=0:round(nfft/2-1);

k=index*Fs/nfft;

plot_Pxx=10*log10(Pxx(index+1));

plot(k,plot_Pxx);

改进的直接法:

对于直接法的功率谱估计,当数据长度N太大时,谱曲线起伏加剧,若N太小,谱的分辨率又不好,因此需要改进。

1。 Bartlett法

Bartlett平均周期图的方法是将N点的有限长序列x(n)分段求周期图再平均。

Matlab代码示例:

clear;

Fs=1000;

n=0:1/Fs:1;

xn=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n));

nfft=1024;

window=boxcar(length(n)); %矩形窗

noverlap=0; %数据无重叠

p=0。

9; %置信概率

[Pxx,Pxxc]=psd(xn,nfft,Fs,window,noverlap,p);

index=0:round(nfft/2-1);

k=index*Fs/nfft;

plot_Pxx=10*log10(Pxx(index+1));

plot_Pxxc=10*log10(Pxxc(index+1));

figure(1)

plot(k,plot_Pxx);

pause;

figure(2)

plot(k,[plot_Pxx plot_Pxx-plot_Pxxc plot_Pxx+plot_Pxxc]);

2。

Welch法

Welch法对Bartlett法进行了两方面的修正,一是选择适当的窗函数w(n),并再周期图计算前直接加进去,加窗的优点是无论什么样的窗函数均可使谱估计非负。二是在分段时,可使各段之间有重叠,这样会使方差减小。

Matlab代码示例:

clear;

Fs=1000;

n=0:1/Fs:1;

xn=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n));

nfft=1024;

window=boxcar(100); %矩形窗

window1=hamming(100); %海明窗

window2=blackman(100); %blackman窗

noverlap=20; %数据无重叠

range='half'; %频率间隔为[0 Fs/2],只计算一半的频率

[Pxx,f]=pwelch(xn,window,noverlap,nfft,Fs,range);

[Pxx1,f]=pwelch(xn,window1,noverlap,nfft,Fs,range);

[Pxx2,f]=pwelch(xn,window2,noverlap,nfft,Fs,range);

plot_Pxx=10*log10(Pxx);

plot_Pxx1=10*log10(Pxx1);

plot_Pxx2=10*log10(Pxx2);

figure(1)

plot(f,plot_Pxx);

pause;

figure(2)

plot(f,plot_Pxx1);

pause;

figure(3)

plot(f,plot_Pxx2);

我也不知道到底能不能用,网上查到的。

全部

c语言编程功率谱,有谁会用C编写求功率谱(答案越多越好)相关推荐

  1. 八数码c语言编程深度搜索,广度优先搜索解 八数码, 求意见, 求bug/

    已结贴√ 问题点数:100 回复次数:31 广度优先搜索解 , 求意见, 求bug/ 我得去买票了,.... #include #include #include #define NUM 5 type ...

  2. 步进电机加速的c语言编程,关于步进电机S型加速程序编写

    给你看一篇文章吧http://wenku.baidu.com/view/39fe ... 71.html?from=search 我是参照这个来写的 [mw_shl_code=applescript, ...

  3. C语言编程练习 1.按如下函数原型编写程序,用一个整型数组feedback保存调查的40个反馈意见。用函数编程计算反馈意见的平均数(Mean)、中位数(Median)和众数(Mode

    题目完整描述: 按如下函数原型编写程序,用一个整型数组feedback保存调查的40个反馈意见.用函数编程计算反馈意见的平均数(Mean).中位数(Median)和众数(Mode).中位数指的是排列在 ...

  4. 欧姆定律的c语言编程例题,欧姆定律计算题专题训练(经典全面附答案).doc

    欧姆定律计算题专题训练(经典全面附答案) 欧姆定律计算题专题训练 1.如图所示的电路中,电压表V1的示数为9伏,电压表V2的示数为3伏,那么R1与R2的阻值之比为 A.2:1 B.1:2 C.3:1 ...

  5. c语言订餐管理系统报告,用c语言编程小型的订餐管理系统,谁会啊?

    用c语言编程小型的订餐管理系统,谁会啊? 答案:3  信息版本:手机版 解决时间 2019-10-06 08:01 已解决 2019-10-05 23:26 用c语言编程小型的订餐管理系统,谁会啊? ...

  6. linux进程创建心得体会,Linux系统下计算机C语言编程心得体会

    摘    要:C语言编程是目前计算机领域中应用较为广泛的编程语言, 很多信息系统都基于C语言编程实现.Linux系统是免费且可以自由传播的操作系统, 支持多用户.多平台应用, 实际生活中应用也较为广泛 ...

  7. C语言编程>第十二周 ③ 已知学生的记录由学号和学习成绩构成,M名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数。

    已知学生的记录由学号和学习成绩构成,M名学生的数据已存入a结构体数组中.请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分).已给出函数的首部,请完成该函 ...

  8. c++ 求四边形面积和周长_C语言编程题 题目:任意输入4个点,求围成四边形的面积是多少?C语言编程题 题目:任意输入4...

    C语言编程题 题目:任意输入4个点,求围成四边形的面积是多少? C语言编程题 题目:任意输入4 www.zhiqu.org     时间: 2020-12-07 我测试过了,四点一线,凹四边形,四边形 ...

  9. c语言gcb最小公倍数,C编序编程题目:输入两个正整数m和n,求其最大公约数和最小公倍...,C语言编程,输入两个正整数M和N(MN),计算M和N...

    问题标题 C编序编程题目:输入两个正整数m和n,求其最大公约数和最小公倍...,C语言编程,输入两个正整数M和N(M 2019-3-27来自ip:15.121.164.188的网友咨询 浏览量:228 ...

最新文章

  1. 网格的铺设问题——骨牌
  2. h5做的app和原生app的区别
  3. boost::sort模块实现相关字符串插入测试
  4. PHP中file_exists与is_file、is_dir的区别,以及执行效率的比较
  5. 我通过了阿里面试,但算法太差,还是没去!
  6. nginx基础概念(100%)之keepalive
  7. java 平均分割list_Java 实现将List平均分成若干个集合
  8. 详解 URLLC 前世今生,你 Get 了吗?
  9. 将 Java 作为入门编程语言有错吗?
  10. Windows Server 2003网络配置与管理 域控制器的管理
  11. 操作系统内存管理-原理
  12. cantor数表 and nyoj85有趣的数
  13. mysql redolog日志
  14. 键盘fn键常亮(一直亮),解决办法
  15. 开源软件许可协议介绍
  16. 【重拾FPGA】读锆石科技硬件语法篇有感
  17. js-入门(字符串-运算符) html常用命令代码行
  18. 开机广告页面2017流行样式 dialogTheme的popuwindow版本
  19. 自我认知测试软件,职业生涯测评系统在线测试
  20. Flexbox在button/fieldset/legend中(比如safair)失效问题

热门文章

  1. 定制CentOS 6.3 自动安装盘
  2. python生成回文数
  3. parted命令详解
  4. swoole process进程 多分发
  5. PHP中date函数月和日带0问题
  6. 用深度学习(CNN RNN Attention)解决大规模文本分类问题 - 综述和实践
  7. 犯罪心理解读Mybatis拦截器
  8. Quick Sort 快速排序算法
  9. jira以及jira API简单介绍
  10. react-native 安卓支持 gif动态图