matlab 提取谐波,用MATLAB采用MUSIC法进行谐波提取出现问题
我采用经典MUSIC法进行频率估计,得不到正确结果。谐波模型为:x(n)=0.1*sin(2*pi*1*n)+0.06*sin(2*pi*1.03*n)+0.05*sin(2*pi*2*n)+0.03*sin(2*pi*2.06*n)+0.01×w(n+1*loop),请高手帮忙!程序见附件。
M=100; %等距阵线的接收点个数
N=100; %快拍次数
end_f=2.5;%频率搜索的范围
count=0;
for delta_f =0:0.001:end_f
count=count+1;
end
loops=5;
Pw=zeros(count,loops);
for loop=1:1:loops
p=4;
% while p~=4
%生成观测数据
%w = wgn(1,2000,0);
w = randn(2000,1);
for n=1:1:300
x(n)=0.1*sin(2*pi*1*n)+0.06*sin(2*pi*1.03*n)+0.05*sin(2*pi*2*n)+0.03*sin(2*pi*2.06*n)+0.01*w(n+1*loop);
end
X=zeros(M,N);
for Nn=1:1:N
X(:,Nn)=x(Nn:Nn+M-1)';
end
%求相关矩阵Rxx
Rxx=zeros(M,M);
for Nn=1:1:N
Rxx=Rxx+X(:,Nn)*X(:,Nn)';
end
Rxx=Rxx/N;
%Rxx的特征值分解、定阶及特征向量分解
[U,SS,V]=svd(Rxx);
bottom = 0;
for hh=1:1:M
bottom = bottom + SS(hh,hh)^2;
end
overhead=0;
v = overhead/bottom;
p=0;
while v<0.99999
p = p + 1;
overhead = overhead + SS(p,p)^2;
v = overhead/bottom;
end
% end
p
S=U(:,1:p);
G=U(:,p+1:M);
%求噪声特征值的平均值
kc=0;
for k=p+1:1:M
kc=kc+SS(k,k);
end
kc=kc/(M-p);
%MUSIC方法求功率谱的峰值
i=0;
for delta_f =0:0.001:end_f
i=i+1;
f(i)=delta_f;
w(i)=2*pi*delta_f;
for Mm=1:1:M
aw(Mm)=exp(-j*(Mm-1)*w(i));
end
UU=0;
for k=1:1:p
UU=UU+(SS(k,k)/(kc-SS(k,k))^2)*S(:,k)*S(:,k)';
end
UU=kc*UU;
% Pw(i)=(aw*UU*aw')/(aw*G*G'*aw');%改进的MUSIC
% Pw(i,loop)=1/(aw*(eye(M)-S*S')*aw');%用信号子空间的MUSIC
Pw(i,loop)=1/(aw*(G*G')*aw');%用噪声子空间的MUSIC
end
end
%求空间谱模值、平均值、取自然对数的20倍,并画出空间谱随频率f的分布图
absPw=20*(log(abs(Pw)));
Pw_mean=mean(absPw,2);
plot(f,Pw_mean);
%寻找Pw_mean的峰值
k=0;
for i=2:1:count-1
if Pw_mean(i) > Pw_mean(i-1) && Pw_mean(i) > Pw_mean(i+1)
k=k+1;
f_max(k)=f(i);
Pw_max(k)=Pw_mean(i);
end
end
%找出最大的那两个极值点及对应的频率
Pw_max=sort(Pw_max);
f_value1=0;
f_value2=0;
for i=1:1:count
if Pw_mean(i)==Pw_max(k)
f_value2=f(i);
Pw_mean(i)
end
end
for i=1:1:count
if Pw_mean(i)==Pw_max(k-1)
f_value1=f(i);
Pw_mean(i)
end
end
f_value1
f_value2
matlab 提取谐波,用MATLAB采用MUSIC法进行谐波提取出现问题相关推荐
- python图像处理-形状提取和识别1(基于Hough的形状提取)
python图像处理-形状提取和识别1 (基于Hough的形状提取) 本系列一个分为两大部分:一个是形状提取,一个是形状识别 1.形状提取中,基于Hough函数法进行直线提取和圆形提取,还有即基于颜色 ...
- matlab音频基频的提取,(620512681) 自相关基频提取算法的MATLAB实现
第31卷总第80期 西北民族大学学报(自然科学版) V01.31.No.4 1 0年1 2 0 2月 Journal of Nonhw铭t University for Nationalities(N ...
- 倒谱基音周期matlab,Matlab基于倒谱和EMD的语音基音周期的提取.doc
Matlab基于倒谱和EMD的语音基音周期的提取 Matlab基于倒谱和EMD的语音基音周期的提取 在语音信号处理中,常用的语音特性是基于Mel频率的倒谱系数(MFCC)以及一些语音信号的固有特征,如 ...
- ip iq 谐波检测matlab仿真,谐波检测技术在配电项目中的应用
本文对谐波相关的概念进行了阐释,包括谐波源的分析.检测方法和谐波危害等,在此基础上,重点对两种谐波电流检测方法进行理论上的分析和比较,并进行了MATLAB仿真,得出了一些有意义的结论.具体内容安排如下 ...
- ip iq 谐波检测matlab仿真,基于Matlab的低压电力系统谐波检测方法仿真研究
基于Matlab的低压电力系统谐波检测方法仿真研究 1 前言 随着科学技术的发展,随着工业生产水平和人民生活水平的提高,非线性用电设备在电网中大量投运,造成了电网的谐波分量占的比重越来越大.它不仅增加 ...
- MATLAB代码:基于雨流计数法的源-荷-储双层协同优化配置
MATLAB代码:基于雨流计数法的源-荷-储双层协同优化配置 关键词:双层规划 雨流计算法 储能优化配置 参考文档:<储能系统容量优化配置及全寿命周期经济性评估方法研究>第三章 仿真平台: ...
- matlab提取语音信号基频检测,语音信号处理中基频提取算法综述
[实例简介] 语音信号处理中基频提取算法综述,论述了各种基频检测的算法,对比分析各方法与思想,不错的总结 增刊 张杰等:语音信号处理中基频提取算法综述 101 信号是由频率具有谐波关系的信号组成的,因 ...
- 如何用matlab消除谐波,哈工大 matlab电机学仿真实验消除谐波
一.实验内容及目的 1.实验内容 一个单相合成电动势中含有明显的5次谐波和7次谐波,其表达式如下所示.采用短距方法,验证削弱谐波电动势的效果. E=sin(Vs)+0.2sin(Vs)*sin(5Vs ...
- 基于瞬时无功功率ip-iq的谐波信号检测MATLAB仿真
建议使用MATLAB2021b 资源: 基于瞬时无功功率ip-iq的谐波信号检测MATLAB仿真资源-CSDN文库 整体模型: 模型具体工作原理不做介绍,因为此方法很老,参考文献巨多!!! 单相输入 ...
最新文章
- gameplay理解
- Linux 操作系统原理 — 系统启动流程
- Arduino/Microduino与OneNet平台及web服务器端的交互
- 牛客小白月赛7 B 自杀游戏
- ubuntu上使用sqlite3
- 【Elasticsearch】ES 慢查询 profile 参数
- windows 2003 server无法远程桌面连接
- mysql数据库在linux下的导出和导入及每天的备份
- 面向对象练习——校园管理系统
- VMware Workstation Pro新建虚拟机的操作步骤(插图)
- 常见OJ提交结果对照表
- Cisco交换机设备配置镜像端口
- Java 后端开发必读的 6 本书!
- 面试失败总结,这 577 道 LeetCode 题 Java 版答案你值得拥有
- Opengl 渲染YUYV(YUV422)图像
- sys fs的原理和使用
- Java web+MySQL编写简易候选人投票(完整代码)
- ERNIE-ViL: Knowledge Enhanced Vision-Language Representations Through Scene Graph
- 【JavaWeb学习,快一起呀,干!】第二章 Servlet基础(3)—— 应用:数据处理
- 清者自清!国际泳联为孙杨“药检风波”盖棺定论
热门文章
- NOIP模拟赛 17.10.10
- 标签云打印/微信小程序蓝牙标签打印开放平台功能
- Java设计模式面试专题
- mc服务器语音,浸入式语音(Immersive Voice)|我的世界1.12.2版本
- Python应用 | 我喜欢看什么美剧(一)
- 中大近代物理实验实验报告(LaTeX实现)
- 约翰 霍普克罗夫特计算机科学中心,上海交通大学约翰·霍普克罗夫特计算机科学中心(John Hopcroft Center)...
- 基于帕累托的多目标遗传算法优化的原理与 Python 实现
- 微信小程序,使用canvas画图生成海报并保存手机相册
- QQ群78928780记录整理:90514技术话题-部分