シン補間が奇妙に見える

enter image description here

青は私がsincを補間しようとした方法です。なぜこういうことが起こるだろう?

0

2 答え

Sin Interpolationは、いつでもデータを知る必要があるため、実行することはできません。

Truncated Sinc Interpolationを実行することがあります。
あなたが見ている成果物は、短すぎるカーネルやパラメータがうまくいかないことによって引き起こされる可能性があります。

良いSincカーネルを作成するには、信号の帯域幅とサンプリングレートについて知っておく必要があります。それらを考慮に入れましたか?

1
追加された
ドラ、私は問題が良いパラメータを選択していないからだとは思わない。 GRDはちょうどそれを正しくしていません。 OPが$ | \ operatorname {sinc}(\ cdot)| $を使用しているように見えます。
追加された 著者 Tyler Durden,
実行しているデータとMファイルのMATファイルを投稿できますか?
追加された 著者 davidalger,
彼のコードにアクセスできませんでしたか?
追加された 著者 davidalger,
はい、それは私の仕事でブロックされています。ごめんなさい...
追加された 著者 davidalger,
私はちょうど信号の一部にズームしました。信号はゼロになり、十分に頻繁にサンプリングされます
追加された 著者 Sarah G,
追加された 著者 Sarah G,
私はsincを伸ばそうとしました。私は100回もサンプルを畳んだので、満足のいく結果が得られました。
追加された 著者 Sarah G,
@Drazick rel="nofollow noreferrer"> pastebin.com/aEwDv012 これが利用可能になるはずです
追加された 著者 Sarah G,
@Drazick私は答えとしてそれを投稿した
追加された 著者 Sarah G,
t=linspace(-.5,.5,256);
x=exp(-pi*t.^2*16).*(sin(2*pi*40*t)+0.154*cos(2*pi*47*t)-1.454*cos(2*pi*27*t));
figure;plot(t,x)

tt=linspace(-.5,.5,256*8-7);
xorj=exp(-pi*tt.^2*16).*(sin(2*pi*40*tt)+0.154*cos(2*pi*47*tt)-1.454*cos(2*pi*27*tt));
figure;plot(tt,xorj)

xf=SincInt(x,8,1);
sh=0;
xf=[ xf(1+sh:end) zeros(1,sh)];
figure;plot(tt,xf)
hold on;plot(tt,xorj)
figure;plot(tf,xf-xorj)

function f = SincInt( f,k ,varargin)
% function f = SincInt( f,k ,varargin)
% varargin=1 to keep the beginning and the end the same

nargin=length(varargin);

N=length(f);
f=[zeros(1,N*(k-1)) f];
for  i = 1: N
    f(k*i-k+1:k*i)= [zeros(1,k-1) f(N*(k-1)+i)];
end

f=conv(f,sinc(-60:1/k:60),'same');

if(nargin==1 && varargin{1})
    f=[f(k:length(f)) ];
end

end
0
追加された