function [f,p] = logsmooth(X,inBin,nbin,n)
% function [f,p] = logsmooth(X,inBin,nbin,n=3)
% Smooth the fft, X, and convert it to dB.
% Use nbin(8) bins from 0 to 3*inBin,
% thereafter increase bin sizes by a factor of 1.1, staying less than 2^10.
% For the n sets of bins inBin+[0:2], 2*inBin+[0:2], ...
% n*inBin+[0:2], don't do averaging. This way, the noise BW
% and the scaling of the tone and its harmonics are unchanged.
% Unfortunately, harmonics above the nth appear smaller than they
% really are because their energy is averaged over many bins.
parameters = {'X','inBin','nbin','n'};
defaults = { [] [] 8 3 };
for arg_i=1:length(defaults)
parameter = char(parameters(arg_i));
if arg_i>nargin | ( eval(['isnumeric(' parameter ') ']) & ...
eval(['any(isnan(' parameter ')) | isempty(' parameter ') ']) )
eval([parameter '=defaults{arg_i};'])
end
end
N=length(X); N2=floor(N/2);
f1 = rem(inBin-1,nbin)+1;
startbin = [f1:nbin:inBin-1 inBin:inBin+2];
for i=2:n
startbin = [startbin startbin(end)+1:nbin:i*inBin-1 i*inBin+[0:2] ];
end
m = startbin(length(startbin))+nbin;
while m < N2
startbin = [startbin m];
nbin = min(nbin*1.1,2^10);
m = round(m+nbin);
end
stopbin = [startbin(2:length(startbin))-1 N2];
f = ((startbin+stopbin)/2 -1)/N;
p = zeros(size(f));
for i=1:length(f)
p(i) = dbp(norm(X(startbin(i):stopbin(i)))^2 / ...
(stopbin(i)-startbin(i)+1));
end
没有合适的资源?快使用搜索试试~ 我知道了~
Plot_SNR.rar_Matlab Plot_SNR MATLAB_plot_plot_snr_snr
共2个文件
m:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 93 浏览量
2022-09-19
16:14:23
上传
评论
收藏 1KB RAR 举报
温馨提示
file upload plot SNR
资源推荐
资源详情
资源评论
收起资源包目录
Plot_SNR.rar (2个子文件)
Plot_SNR
logsmooth.m 1KB
lollipop.m 422B
共 2 条
- 1
资源评论
御道御小黑
- 粉丝: 58
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功