计算并并绘制功率谱。其意义是什么?功率谱估计就是通过信号的相关性估计出接受到信号的功率随频率的变化关系,实际用途有滤波,信号识别(分析出信号的频率),信号分离,系统辨识等。谱估计技术是现代信号处理的-个重要部分,还包括空间谱估计,高阶谱估计等。维纳滤波、卡尔曼 滤波,可用于自适应滤波,信号波形预测等(以控系统中的飞机航迹预判)。
clear; close all; clc;
fs = 202; %采样频率要大于最高频率的两倍,参考奈奎斯特采样定理
N = 1000; %采样点数,可以与采样频率一致
t = (0:N-1)/fs ; % 时间向量
s=cos(2*pi*10*t)+cos(2*pi*25*t)+cos(2*pi*50*t)+cos(2*pi*100*t);
y = fft(s,N);
% freq = (0:N/2-1)*fs/N;
freq = (0:N/2-1)*fs/N-fs/2;
subplot(211)
plot(t,s);
subplot(212)
plot(freq,abs(y(1:N/2)+1),'k');
xlabel('频率(Hz)'); ylabel('幅值');
xlim([0 120]);
grid on;
绘制功率谱函数,分析波形频率。横坐标为频率,纵坐标为幅值。
大概是几年前有个论文材料在弄这个,当时觉得麻烦,也下载了很多东西,不知道因为什么原因放弃继续弄了。最近又遇到这个问题,就把有的东西记录下来,希望这次能弄明白。
最直接估计谱密度的方法是采用周期图法(即傅里叶变换),即把随机序列x(n)的N个观测数据视为一能量有限的序列,直接计算x(n)的离散傅立叶变换,得X(k),然后再取其幅值的平方,并除以N,作为序列x(n)真实功率谱的估计(参考matlab中的psd或spectrum函数)。
功率谱密度就是自相关函数的傅里叶变换。?
close all;clc;clear;
Fs=1024; %采样频率
n=0:1/Fs:1-1/Fs;
%产生含有噪声的序列
xn=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n));
%% 直接法
NFFT = 2^10;
window = boxcar(length(xn));
[Pxx,F] = periodogram(xn,window,NFFT,Fs); %Periodogram power spectral density estimate
plot(F,10*log10(Pxx),'LineWidth',1.5) %dB的定义
hold on
%% 自相关法
R=xcorr(xn,'unbiased'); %计算序列的自相关函数
Rdft = fft(R,NFFT)/Fs;
Pxx = abs(Rdft);
index = 0:round(NFFT/2-1);
freq=index*Fs/NFFT;
Pxx(2:end-1) = 2*Pxx(2:end-1);
plot(freq,10*log10(Pxx(index+1)),'LineWidth',1.5); %dB的定义
hold on
legend('直接','间接')
理论上进行自相关得到的就是功率谱了径向平均对数功率谱其实是一个统计平均值,假如你有256*256个数据,那你要把频率分成128份,然后统计每一圈内的数据点数,算功率谱的平均值再取对数,就行了
计算二维数据的径向平均功率谱,较好地展现了磁异常的径向变化
波数从相位的角度出发,可理解为:相位随距离的变化率(rad/m)。
功率谱的横坐标有的是频率有的是波数,纵坐标有人说按照dB定义。即 db/Hz
有的是波数和ln(Ps)径向平均功率谱对数。
波数/频率和功率谱(dB)的这种对应关系,到底能揭示什么,如何揭示?来回翻了很多。
感觉这次比上一次看往前是挪动了一点,但是距离理解还是差很多。
找到一个解释说明的网站:频谱、功率谱、倒频谱_heda3的博客-CSDN博客_倒频谱
有熟悉的人欢迎答疑解惑。