资源简介
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数字信号处理工具箱
- Logistic曲线的三种参数估计方法及ma
- 基于MATLAB的阵列信号处理仿真方法
- 20M带宽高斯信道 Matlab 仿真
- 基于MATLAB的阵列信号处理仿真
- MATALB 程序.zip
- 基于Matlab的数字信号处理仿真系统实
- 遗忘因子递推最小二乘参数估计MATL
- 语音信号处理matlab GUI
- matlab中仿真自适应信号处理LMSNewton算
- matlab中仿真自适应信号处理LMS算法
- 数字信号处理——应用MATLAB英文影印
- 数字信号处理——基于计算机的方法
- 自适应信号处理 LMS算法
- 序列卷积和运算及其可视化呈现
- 数字信号处理实验刘舒帆版答案
- matlab正弦信号高斯处理
- cic_fpga.rar
- matlab 信号处理超级学习手册的程序代
- 南京邮电大学 数字信号处理实验报告
- 《现代数字信号处理》何子述 第三章
- Voicebox语音处理包
- MATLAB均衡器
- matlab语音信号处理工具箱
- 数字信号处理-基于计算机的方法课本
- MATLAB语音信号处理
- signal processing matlab 信号处理中需要的
- radar process toolbox 雷达信号处理的mat
- 男女声识别
评论
共有 条评论