资源简介
matlab 代码 信号带宽估计的matlab代码

代码片段和文件信息
%
% FUNCTION 1.2 : “cp0101_bandwidth“
%
% Evaluates the bandwidth of the input ‘signal‘ with sampling period ‘dt‘
%
% Bandwidth is evaluated according to the given ‘threshold‘(in dB)
% ‘BW‘ is the bandwidth
% ‘f_high‘ is the higher limit
% ‘f_low‘ is the lower limit
% 调制信号的单边带宽是基带信号带宽的2倍,要调制到1000Hz正弦波上,f0=1e3
% Programmed by Guerino Giancola
%
function [ss_Ef_highf_lowBW]=cp0101_bandwidth(signaldtthreshold)
% ---------------------------------------------------------
% Step One - Evaluation of the single-sided ESD(功率谱密度)
% ---------------------------------------------------------
threshold=-3; % 计算带宽所需要的阈值为-3dB或-10dB
width=1e-1;
points=500;
f0=0; % 要调制到1000Hz正弦波上,f0=1e3
dt=width/points;
signal=zeros(15*points); % 矩阵1到5*points
signal(2*points:3*points-1)=ones(1points); % signal矩阵从2*points到3*points-1这1000点都为1
mod=cos(2.*pi.*f0.*linspace(15*width5*points));
signal=signal.*mod;
fs=1/dt;
N=length(signal);
T=N*dt;
df=1/T;
X=fft(signal);
X=X/N;
ds_E=abs(X).^2/(df^2);
ss_E=2.*ds_E(1:floor(N/2));
% ------------------------------------------------
% Step Two - Evaluation of the frequency bandwidth
% ------------------------------------------------
[Epeakindex]=max(ss_E);
f_peak=index*df;
Eth=Epeak*10^(threshold/10);
% iterative algorithm for evaluating high and low frequencies
imax=index;
E0h=ss_E(index);
while (E0h>Eth)&(imax<=(N/2))
imax=imax+1;
E0h=ss_E(imax);
end
f_high=(imax-1)*df;
imin=index;
E0l=ss_E(index);
while (E0l>Eth)&(imin>1)&(index>1)
imin=imin-1;
E0l=ss_E(imin);
end
f_low=(min(indeximin)-1)*df;
% end of iterative algorithm
BW=f_high-f_low;
fprintf(‘\nFrequency Bandwidth= %f [Hz]\nHigh Frequency=%f [Hz]\nLow Frequency= %f [Hz]\n‘BWf_highf_low);
% -----------------------------
% Step Three - Graphical output
% -----------------------------
figure(2)
frequency=linspace(0fs/2length(ss_E));
PF=plot(frequencyss_E);
set(PF‘LineWidth‘[2]); % 线条宽度为[2]
L1=line([f_high f_high][min(ss_E) max(ss_E)]);
set(L1‘Color‘[0 0 0]‘Linestyle‘‘:‘);
L1=line([f_low f_low][min(ss_E) max(ss_E)]);
set(L1‘Color‘[0 0 0]‘Linestyle‘‘:‘);
L1=line([f_low f_high][Eth Eth]);
set(L1‘LineWidth‘[2]‘Color‘‘red‘‘Linestyle‘‘:‘);
axis([0.8*f_low 1.2*f_high -0.1*Epeak 1.2*Epeak]);
AX=gca;
set(AX‘FontSize‘12);
T=title(‘Frequency domain‘);
set(T‘FontSize‘14);
X=xlabel(‘Frequency [Hz]‘);
set(X‘FontSize‘14);
Y=ylabel(‘Single-Sided ESD [V^2s/Hz]‘);
set(Y‘FontSize‘14);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2712 2008-09-30 18:35 bandwidth.m
----------- --------- ---------- ----- ----
2712 1
相关资源
- 数字信号处理 matlab实验源程序吴镇扬
- 数字信号处理 理论算法与实现 胡广书
- 心音信号处理分析(附matlab代码)
- MATLAB数字信号处理85个实用案例精讲入
- 基于倒谱图判断浊音的基音周期MATL
- 数字信号处理及MATLAB实现__第二版__学
- IIR数字滤波器设计实验报告
- MATLAB信号处理EEMD工具箱
- MATLAB实现k-svd和mod信号处理
- 心电信号处理方法
- 数字信号处理实验指导书MAtlab版-数字
- 基于MATLAB的脑电信号处理.pdf
- 北邮信通院数字信号处理课件DSP合集
- 数字信号处理及其Matlab的实现
- 音乐检索系统MATLAB程序.zip
- 阵列信号处理中的基于matlab的MUSIC
- 数字信号处理及其MATLAB实现
- 随机信号处理功率谱估计MATLAB程序及
- 数字信号处理(MATLAB版)235940
- 数字信号处理MATLAB版第三版
- 数字信号处理及其Matlab实现 陈怀琛
- 基于MATLAB的系统分析与设计——信号
- 线性系统参数估计的最大似然法
- 语音信号子带编码matlab程序subband_co
- [数字信号处理及其MATLAB实现——慕课
- 小波与傅里叶分析基础扫描版PDF
- 信号分析与处理——MATLAB语言及应用
- MATLAB在数字信号处理中的应用清华大
- 数字信号处理:使用MATLAB.pdf
- 信号处理滤波器设计——基于MATLAB和
评论
共有 条评论