基于Matlab实现宽带调制转换器

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信       无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机 

⛄ 内容介绍

​随着现代通信技术的发展,无线电技术已经深入到社会的各个领域.用户对高速无线传输技术的需求越来越多.这使得信号传输带宽变宽,频点也越来越复杂.实时感知当前频谱占用情况进而采取动态接入的方式是解决当前频谱资源匮乏的重要手段.根据传统奈奎斯特采样定理,若要无混叠的得到宽带内信号的频谱,则需要极高的采样率以及较强的数字信号处理能力.

⛄ 部分代码

function [Xr, Supp, ResNorm, NormResvsSol] = RunOMP_Unnormalized(Y,A,NumIters, ResThreshold, ResvsSolThreshold, SymmetricSupport)

% OMP alogrithm for MMV/SMV: Y=AX

% This function returns a solution Xr together with the support (Supp)

% The termination criteria are:

%    Stop if more than NumIters iterations

%    Stop if residual norm is greater than ResThreshold

%    Stop if the ratio between residual norm and the norm of the current solution is greater than ResvsSolThreshold

% If SymmetricSupport is true, then the algorithm select pairs of indices every

%      iteration, such that the indices are symettric with respect to solution

%       dimensions (special feature for conjugate symmetric solutions).

[mA,nA] = size(A);

[mY,nY] = size(Y);

residual = Y;

Supp = [];

iter = 1;

resnorm = norm(Y);

resvssolnorm = inf;

NormACols = sqrt(diag(A'*A));

while (  (iter <= NumIters)  &&  (resnorm > ResThreshold) && (resvssolnorm >  ResvsSolThreshold))

    % Matching step

    Z_1 = A'*residual;

    Z = sqrt(sum(abs(Z_1).^2,2))./NormACols;

    [maxVal, maxPos] = max(Z);

    BestLoc = maxPos(1);

    % Update support

    Supp = [Supp BestLoc];

    if (SymmetricSupport == true)

        SymmetricLoc =  (nA+1-BestLoc);

        if (BestLoc ~= SymmetricLoc)

            Supp = [Supp SymmetricLoc];

        end

    end

    % Project residual

    As = A(:,Supp);

    solution = As*pinv(As)*Y;

    residual = Y-solution;

    % update norms

    resnorm = norm(residual);

    resvssolnorm  = resnorm/norm(solution);

    ResNorm(iter) = resnorm;

    NormResvsSol(iter) = resvssolnorm ;

    % increment iter number

    iter = iter+1;

end

% Construct solution

Xr = zeros(nA,nY);

Xr(Supp,:) = pinv(As)*Y;

⛄ 运行结果

⛄ 参考文献

[1]王盟皓, 侯训平, 陆铁军. 基于Matlab的宽带连续时间Sigma-Delta调制器设计[J]. 微电子学与计算机, 2020, 37(6):5.

⛳️ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值