matlab绘制图像的幅度谱 相位谱
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab绘制图像的幅度谱 相位谱相关的知识,希望对你有一定的参考价值。
如何用matlab绘制图像的幅度谱 相位谱
并根据幅度谱和相位谱重建空间域图像
可以参考下面的代码:
首先要写出图像的函数,不妨设为f;
然后求它的傅里叶变换g=fft(f);
求幅度谱f1=atan(g);
求相位谱f2=angle(g);
stem(f1,'--','fill');
stem(f2,'--','fill')
扩展资料:
Matlab常用函数和命令
diag 矩阵对角元素提取、创建对角阵
diary Matlab指令窗文本内容记录
diff 数值差分、符号微分
digits 符号计算中设置符号数值的精度
double 把其他类型对象转换为双精度数值
drawnow 更新事件队列强迫Matlab刷新屏幕
floor(x):下取整,即舍去正小数至相邻整数
ceil(x):上取整,即加入正小数至相邻整数
errortrap 错误发生后程序是否继续执行的控制
参考资料来源:百度百科-MATLAB
参考技术AY=fft(y,512);
F =10*f*[0:256]/512;
fp=2*sqrt(Y.*conj(Y));%幅度谱
xp=angle(Y); %相位谱
gl=abs(Y).^2; %功率谱
magif=ifft2(abs(f2));%幅度重构
pha=angle(f2);%取相位
phaif=ifft2(exp(j*pha));%相位重构
数据是x(i),共N个点,采样频率是fsample
dt = 1/fsample
df = 1/N/dt
f = 0:df:(N-1)*df
X=fft(fftshift(x))
plot(f,real(X))
plot(f,imag(X))
扩展资料:
相位谱是调整声音相位的,最容易理解的就是左右声道的位置调整,实际上相位还决定着其他很多声音的属性。
对于一个系统,能够通过其相位谱来判断该系统是否为线性相位系统。线性相位系统故名思义,看相位是否随频率线性变化。但相位谱的作用不仅限于此,奥本海姆在一篇经典文献中认为信号的相位包含的信息大于幅度,实际上从最初的最小相位系统,倒谱分析,到系统辨识,高阶谱估计等理论都是以相位谱为突破口。
参考资料来源:百度百科-相位谱
参考技术B 首先要写出图像的函数,不妨设为f;然后求它的傅里叶变换g=fft(f);
求幅度谱f1=atan(g);
求相位谱f2=angle(g);
stem(f1,'--','fill');
stem(f2,'--','fill') 参考技术C Y=fft(y,512);
F =10*f*[0:256]/512;
fp=2*sqrt(Y.*conj(Y));%幅度谱
xp=angle(Y); %相位谱
gl=abs(Y).^2; %功率谱
plot(F,fp(1:257));
plot(F,xp(1:257));
plot(F,gl(1:257));
你补充解答不了.本回答被提问者采纳 参考技术D 当然可以代替
短时幅度谱短时幅度谱估计在语音增强方面的MATLAB仿真
1.软件版本
matlab2021a
2.本算法理论知识
处理宽带噪声的最通用技术是谱减法,即从带噪语音估值中减去噪声频谱估值,而得到纯净语音的频谱。由于人耳对语音频谱分量的相位不敏感,因而这种方法主要针对短时幅度谱。假定语音为平稳信号,而噪声和语音为加性信号且彼此不相关。此时带噪语音信号可表示为。
3.部分核心代码
function enhancedsignal=wiener(noisyspeech,samplefrequency)
x=noisyspeech;
fs=samplefrequency;
nx=length(x);
enhanced_x=zeros(1,nx);
%分帧和加窗
FrameLen=fix(0.025*fs); %取25毫秒为一帧
overlap=FrameLen/2;
inc=FrameLen-overlap; %帧移
x_frame=enframe(x,FrameLen,inc); %分帧
nf=size(x_frame,1); % 帧数
win=hamming(FrameLen)';
x_window=[];
for k=1:nf
x_row=x_frame(k,:).*win; % 加窗
x_window=[x_window;x_row];
end
%对带噪语音进行DFT
y=fft(x_window');
ymag = abs(y);
yphase = angle(y);
NNoise=23; %取噪音段(语音的初始段)帧数
MN=mean(ymag(:,1:NNoise)')';
PN=mean(ymag(:,1:NNoise)'.^2)'; %初始噪声功率谱均值
NoiseCounter=0;%连续噪声段长度
SmoothFactor=9;%噪声平滑因子
Alpha=0.95; %语音平滑因子
SNRPre=ones(size(MN));
%维纳滤波
for k=1:nf
if k<=NNoise
SpeechFlag=0;
NoiseCounter=NNoise;
else
NoiseMargin=3;
HangOver=8;
SpectralDist= 20*(log10(ymag(:,k))-log10(MN));
SpectralDist(find(SpectralDist<0))=0;
Dist=mean(SpectralDist);
if (Dist < NoiseMargin)
NoiseFlag=1;
NoiseCounter=NoiseCounter+1;
else
NoiseFlag=0;
NoiseCounter=0;
end
if (NoiseCounter > HangOver)
SpeechFlag=0;
else
SpeechFlag=1;
end
end
if SpeechFlag==0
MN=(SmoothFactor*MN+ymag(:,k))/(SmoothFactor+1); %更新噪声均值
PN=(SmoothFactor*PN+(ymag(:,k).^2))/(1+SmoothFactor); %更新噪声功率
end
%------滤波
SNRNew=(ymag(:,k).^2)./PN-1;
SNRPost=Alpha*SNRPre+(1-Alpha).*max(SNRNew,0);
Gain=SNRPost./(SNRPost+1);
smag=Gain.*ymag(:,k);
SNRPre=smag.^2./PN;
spectrum= smag.*exp(j*yphase(:,k));
enhanced_x((inc*(k-1)+1):(inc*(k-1)+FrameLen))=enhanced_x((inc*(k-1)+1):(inc*(k-1)+FrameLen))+real(ifft(spectrum,FrameLen))';
end
enhancedsignal=enhanced_x;
4.仿真结论
5.参考文献
[1] 易克初. 语音信号处理[M]. 北京:国防工业出版社, 2000.
[2] LiZhao, KOBAYASHI, NIIMI Y Tone. Recongnition of Chinese continuous speech using continuous HMMs[J]. Journal of the Acoustical Society of Japan, 53(12), 933-940, 1997.
A03-03
6.完整源码获得方式
方式1:微信或者QQ联系博主
方式2:订阅,免费获得教程案例代码以及本博任意2份完整源码
以上是关于matlab绘制图像的幅度谱 相位谱的主要内容,如果未能解决你的问题,请参考以下文章
求matlab周期三角波信号频谱分析的代码,能画出三角波信号、幅度谱和相位谱。