亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? er_firlsinv.m

?? dsp工具箱
?? M
字號:
function [hs,es] = er_firlsinv(gnum,gden,fnum,fden,n,m)
% function [hs,es] = er_firlsinv(gnum,gden,fnum,fden,n,m)
%   Function to find deterministic least squares inverse FIR filter coefficients
%   HS and return error vector in ES, to minimize ||f - conv(g,h)||.  Takes first filter 
%   transfer function numerator coefficients in GNUM and denominator coefficients in 
%   GDEN (to create deterministic autocorrelation sequence R) and second transfer function 
%   numerator coefficient vector in FNUM and denominator coefficient vector in FDEN (to 
%   generate normal equation result vector  Q).  Order of FIR filter is given in N.  Length 
%   of inverse z-transform is given in M.
%   NOTE: Zero-padding is not needed for input vectors to equalize lengths over all vectors.
%
%   EXAMPLE:
%   >> [hs,es] = er_firlsinv([0.25 0 -1],[1],[0 0 0 0 0 0 0 0 0 0 0 0 1],[1],10,32);
%
%   CONSTRAINTS:  G and F must be rational, G having no poles or zeros on unit circle, F 
%   having no poles on unit circle.
%
%   Author:  Evan Ruzanski, CU-Boulder, ECEN5632 MATLAB assignment, FA2004

% Long numerical format for accurate screen display
format long
warning off

% %%%%%%%%%% PERFORM FRONT-END PROCESSING %%%%%%%%%%
% Generate autocorrelation sequence
Rnum = conv(gnum,fliplr(gnum));
Rden = conv(gden,fliplr(gden));
r = iztrans(Rnum,Rden,m);

% Take causal part of autocorrelation sequence
[max_val ind] = max(r); 
r = r(ind:ind + n);

% Generate normal equation result vector
Qnum = conv(fnum,fliplr(gnum));
Qden = conv(fden,fliplr(gden));
q = iztrans(Qnum,Qden,m);

% Take causal part of normal equation result vector sequence
q = q(ind:ind + n);

%%%%%%%%%% SOLVE TOEPLITZ SYSTEM OF EQUATIONS USING LEVINSON RECURSION %%%%%%%%%% 
%%%%%%%%%% (via Fig. 7.2.2 in Roberts, Mullis, p. 233) %%%%%%%%%%
% Initialize
alpha = r(1);
a(1,1) = 1;
hh(1) = q(1)/r(1);

% Body
for k = 1:n
    a(k + 1,k) = 0;
    a(1,k + 1) = 1;
    
    % Intermediate step: compute first sum
    summ = 0;
    for j = 0:k - 1
        summ = summ + r(k + 1 - j)*a(j + 1,k);
    end
    
    beta = summ/alpha;
    for j = 1:k
        a(j + 1,k + 1) = a(j + 1,k) - beta*a(k + 1 - j,k);
    end
    alpha = alpha*(1 - beta^2);
    
    % Intermediate step: compute second sum
    summ = 0;
    for j = 0:k - 1
        summ = summ + r(k + 1 - j)*hh(j + 1);
    end
    
    hh(k + 1) = (q(k + 1) - summ)/alpha;
    for j = 0:k - 1
        hh(j + 1) = hh(j + 1) + a(k + 1 - j,k + 1)*hh(k + 1);
    end
end

%%%%%%%%%% GENERATE ERROR SEQUENCE AND DISPLAY %%%%%%%%%%
% Generate V(h) = ||f|| - q'h 
vnum = conv(fnum,fliplr(fnum));
vden = conv(fden,fliplr(fden));
normf = iztrans(vnum,vden,m);
normf = sum(normf.^2);
Vmin = normf - q*hh';
disp('Mean square error: ');
Vmin
% Generate error sequence
g = iztrans(gnum,gden,m);
f = iztrans(fnum,fden,m);
f2 = conv(g,hh);
e = f - f2(1:m);

%%%%%%%%%% PACK OUTPUT INTO STRUCT FOR PLOTTING %%%%%%%%%%
hs(1).tf_complete = hh;
hs(2).tf_complete = 1;
es(1).tf_complete = e;
es(2).tf_complete = 1;

%%%%%%%%%% DECLARE LOCAL FUNCTIONS %%%%%%%%%%
function h = iztrans(numd,dend,N);
% IZTRANS Take inverse z-transform of given transfer function

% STEP 1:  Decompose given transfer function into causal and anticausal
% sections (using partial fraction decomposition)

% Decompose given transfer function into causal and anticausal sections using partial fraction decomposition

%%%%% Create denominator polynomials %%%%%
lzc = shiftcheck(dend); % Strip leading/trailing zeros from shifts only
tzc = shiftcheck(fliplr(dend));
% lzc = 0;
% tzc = 0;
p = roots(dend); % Find poles
if (isempty(p) == 1) % Set (assumed causal) FIR case
    denc = dend;
    denac = [1];
    pc = [];
    pac = [];
elseif (lzc == tzc) % Set IIR case
    pm = abs(p); % Separate poles of causal, anticausal sections
    pc = [];
    pac = [];
    for k = 1:length(p)
        if ((pm(k) < 1)) % No poles at zero => trailing zero in denominator
            pc = [pc ; p(k)]; % Column vector of causal poles
        else
            pac = [pac ; p(k)]; % Column vector of anticausal poles
        end
    end
elseif (lzc ~= tzc)
    pm = abs(p); % Separate poles of causal, anticausal sections
    pc = [];
    pac = [];
    for k = 1:length(p)
        if ((pm(k) < 1) & (pm(k) ~= 0)) % No poles at zero => trailing zero in denominator
            pc = [pc ; p(k)] ;% Column vector of causal poles
        elseif (pm(k) ~= 0)
            pac = [pac ; p(k)]; % Column vector of anticausal poles
        end
    end
end
denc = poly(pc); % Causal section, ascending powers of z^(-n)
denac = poly(1./pac); % Anticausal section, ascending powers of z^(n)
% Ensure equal lengths
if (length(denc) > length(denac)) 
    denac = [denac zeros(1,length(denc)-length(denac))]; % Trailing zeros does not change tf
elseif (length(denac) > length(denc))
    denc = [denc zeros(1,length(denac)-length(denc))];
else
    denc = denc;
    denac = denac;
end

%%%%% Create numerator polynomials %%%%%
lzc = shiftcheck(numd); % Strip leading/trailing zeros from shifts only
tzc = shiftcheck(fliplr(numd));
if (lzc ~= tzc)
    numd2 = numd(lzc + 1:length(numd)-tzc);
else
    numd2 = numd;
end
if ((isempty(pc) == 1) & (isempty(pac) == 1)) % Check (assumed causal) FIR case 
    numc = numd2;
    numac = [1];
    firflag = 1;
elseif ((length(denc) == length(dend)) & isempty(pac) == 1) % All causal
    numc = numd2;
    numac = [1];
    firflag = 0;
elseif ((length(denac) == length(dend)) & isempty(pc) == 1) % All anticausal
    numac = fliplr(numd2);
    numc = [1];
    firflag = 0;
else % Non-causal
    % Create numerator polynomials using matrix equations from cross-multiplication of numerator, denominator
    lendc = length(denc);
    lendac = length(denac);
    D1(1:lendac,1:lendac) = 0; % Matrix anticausal section
    cnt = 1;
    ptr = lendac - 1;
    for k = 1:lendac
        for m = 1:cnt
            D1(k,m) = denac(ptr + m);
        end
        ptr = ptr - 1;
        cnt = cnt + 1;
    end
    D2(1:lendc,1:lendc) = 0; % Matrix causal section
    cnt = 1;
    ptr = 2;
    for k = 1:lendc
        for m = 1:cnt
            D2(k,lendc + 1 - m) = denc(ptr - m);
        end
        ptr = ptr + 1;
        cnt = cnt + 1;
    end
    D = D1 + D2;
    Dinvrs = inv(D);
    Ds = size(D);
    if length(numd2 < Ds(1))
        numd2 = [zeros(1,Ds(1) - length(numd2)),numd2];
    end
    if (Ds(1) == length(numd2))
        numc = (Dinvrs*numd2')';
    else
        numc = (Dinvrs*numd2(1:Ds(1))')';
    end
    numac = numc;
    firflag = 0;
end
% Compute impulse response
sample_plot = -N/2:N/2-1; % Plot vector
sample_n = -N/2+(tzc-lzc):N/2+(tzc-lzc)-1; % Impulse response vector
unit_pulse = (sample_n == 0);

% Check causality of response
% Check causal case
dc = shiftcheck(fliplr(denc));
denc = denc(1:length(denc) - dc);
if length(numc) == length(denc)
    cchk = numc./denc;
elseif length(numc) > length(denc)
    cchk = numc./[denc zeros(1,length(numc)-length(denc))];
elseif length(denc) > length(numc)
    cchk = [numc zeros(1,length(denc)-length(numc))]./denc;
end
cchk = sum(cchk.^2);

% Check anticausal case
dac = shiftcheck(fliplr(denac));
denac = denac(1:length(denac) - dac);
if length(numac) == length(denac)
    acchk = numac./denac;
elseif length(numac) > length(denac)
    acchk = numac./[denac zeros(1,length(numac)-length(denac))];
elseif length(denac) > length(numac)
    acchk = [numac zeros(1,length(denac)-length(numac))]./denac;
end
acchk = sum(acchk.^2);

if ((cchk ~= [1]) | (firflag == 1)) % Causal filtering
    x = unit_pulse;
    u = filter(numc,denc,x);
end

if (acchk ~= [1]) % Anti-causal filtering
    x = unit_pulse;
    x = fliplr(x);
    w = filter(numac,denac,x);
    w = fliplr(w);
end

if ((cchk ~= [1]) & (acchk ~= [1])) % Sum of parallel causal/anti-causal sections
    h = u + w;
elseif (acchk ~= [1])
    h = w;
else
    h = u;
end

function ct = shiftcheck(a)
% SHIFTCHECK Count number of leading zeros in input vector
alen = length(a);
epsilon = 10e-9;
% Count front zeros
ct = 0;
for k = 1:alen - 1
    if abs(a(k)) < epsilon
        ct = ct + 1;
        if abs(a(k + 1)) < epsilon
            ct = ct;
        elseif abs(a(k + 1)) > epsilon
            break
        end
    else
        break
    end
end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级一级性生活免费录像| 911精品国产一区二区在线| 3d成人动漫网站| 日韩成人dvd| 国产喷白浆一区二区三区| 成人黄页在线观看| 亚洲成人自拍偷拍| 日韩精品一区二区在线观看| 国产99久久久国产精品潘金网站| 国产精品午夜在线| 欧美视频完全免费看| 精品一区二区精品| 亚洲不卡在线观看| 中文字幕乱码日本亚洲一区二区| 欧美视频你懂的| 亚洲免费伊人电影| 99精品偷自拍| 国产乱色国产精品免费视频| 一区二区三区四区国产精品| 精品欧美黑人一区二区三区| 91黄色免费看| 韩国精品在线观看| 日产国产欧美视频一区精品| 国产精品久久午夜| 久久精品夜色噜噜亚洲aⅴ| 欧美视频在线一区| 91国在线观看| 日本高清视频一区二区| 99久久国产综合精品麻豆| 懂色一区二区三区免费观看| 另类的小说在线视频另类成人小视频在线 | 欧美一级二级三级乱码| 色综合视频一区二区三区高清| 国内精品伊人久久久久av一坑 | 国产精品乱人伦中文| 久久久五月婷婷| 国产欧美在线观看一区| 国产精品欧美久久久久无广告| 久久伊人蜜桃av一区二区| 欧美日韩一区二区三区在线| 91精品国产综合久久香蕉麻豆| 欧美在线观看禁18| 欧美日韩亚洲国产综合| 7777精品伊人久久久大香线蕉经典版下载| 蜜臀av一区二区在线免费观看| 国产精品久久久久久久午夜片 | 色婷婷亚洲精品| 欧美在线观看一区| 91搞黄在线观看| 欧美精品第1页| 国产精品色婷婷| 美女视频黄免费的久久| 成人高清伦理免费影院在线观看| 欧美三电影在线| 日本一区二区三区高清不卡| 亚洲精品久久嫩草网站秘色| 五月天久久比比资源色| 国产精品自在欧美一区| 欧美私模裸体表演在线观看| 精品99久久久久久| 亚洲不卡av一区二区三区| 国产成人精品免费在线| 欧美www视频| 日韩精品一二三| 欧美在线你懂的| 亚洲欧洲日韩一区二区三区| 久久66热re国产| 欧美一区二区成人6969| 亚洲影院理伦片| 91成人免费在线| 一二三区精品视频| 精品视频全国免费看| 亚洲一区欧美一区| 国产精品亚洲成人| 精品国产制服丝袜高跟| 日本亚洲一区二区| 精品日韩一区二区三区| 国内久久精品视频| 欧美绝品在线观看成人午夜影视| 欧美巨大另类极品videosbest | 日韩中文字幕1| 日韩美女视频一区二区在线观看| 男女性色大片免费观看一区二区 | 国产精品国产a| 91高清在线观看| 日本91福利区| 国产女同互慰高潮91漫画| 国产精品系列在线播放| 国产婷婷色一区二区三区 | 99精品在线观看视频| 亚洲成av人在线观看| 日韩精品一区二区三区蜜臀| 国产精品综合一区二区| 亚洲免费观看视频| 欧美一二三在线| 一本到一区二区三区| 开心九九激情九九欧美日韩精美视频电影| 精品福利av导航| 欧美三级视频在线观看| 国产精品18久久久久久vr| 伊人一区二区三区| 久久九九久精品国产免费直播| 99久久夜色精品国产网站| 精品一区二区久久久| 欧美成人猛片aaaaaaa| 国产精品一区二区在线播放| 亚洲成人av在线电影| 国产精品久久久久久久久久久免费看| 欧美久久久影院| 欧美影院一区二区| 99r国产精品| 91麻豆免费看| 91美女片黄在线观看| 国产在线不卡一卡二卡三卡四卡| 亚洲成人在线网站| 日本91福利区| 蜜桃一区二区三区在线观看| 一区二区三区免费网站| 中文字幕一区二区视频| 一区二区三区蜜桃| 石原莉奈在线亚洲三区| 久久激情五月激情| 国产精品亚洲一区二区三区在线| 国产精品一区三区| 成人黄页在线观看| 欧美精品一二三| 久久久另类综合| 亚洲欧洲综合另类在线| 日韩黄色一级片| 狠狠色丁香婷综合久久| 99这里都是精品| 欧美一区二区在线不卡| 久久久久久久久久久99999| 亚洲日本成人在线观看| 丝袜脚交一区二区| www.视频一区| 2020国产精品自拍| 亚洲午夜久久久久久久久久久| 国产在线视频精品一区| 色香色香欲天天天影视综合网| 日韩免费在线观看| 亚洲影视在线播放| 国产一二精品视频| 9191精品国产综合久久久久久| 国产精品久久久久一区二区三区 | 色视频成人在线观看免| 精品久久久久久久久久久院品网| 国产精品电影一区二区| 国产一区二区三区久久悠悠色av| 欧美午夜免费电影| 亚洲综合图片区| 岛国av在线一区| 欧美大片拔萝卜| 蜜臀va亚洲va欧美va天堂| 欧美日韩精品欧美日韩精品一 | 亚洲免费观看在线观看| 成人一区二区视频| 中文字幕免费不卡在线| 国产suv精品一区二区6| 国产精品免费视频一区| 成人av资源站| 亚洲人成伊人成综合网小说| jizz一区二区| 亚洲国产视频a| 欧美军同video69gay| 美女任你摸久久| 久久久99免费| aaa欧美大片| 日韩国产在线观看一区| 欧美xingq一区二区| 国产麻豆精品在线| 日本一区二区免费在线| 99国产麻豆精品| 日本一不卡视频| 国产精品毛片a∨一区二区三区 | 福利一区二区在线| 亚洲日本青草视频在线怡红院| 欧美吞精做爰啪啪高潮| 久久成人免费网| 中文字幕亚洲电影| 欧美videofree性高清杂交| 99精品久久久久久| 国产一区二区免费看| 亚洲美女免费视频| 久久久久久影视| 欧美日韩国产成人在线91| 成a人片亚洲日本久久| 亚洲国产va精品久久久不卡综合 | 亚洲蜜桃精久久久久久久| 欧美精品第1页| 日本韩国欧美三级| 91视频一区二区三区| 精品一区二区三区在线观看国产 | 成人午夜大片免费观看| 麻豆精品一区二区综合av| 午夜伊人狠狠久久| 亚洲午夜在线观看视频在线| 亚洲女同一区二区| 亚洲色图欧美激情| 亚洲综合在线视频|