Reply by February 28, 20202020-02-28
```On 02/27/2020 08:12 PM, Richard (Rick) Lyons wrote:
> Hello Johann.
> I can only make your Feb 26, 2020 code work if I multiply your final 'retval' sequence by an n-length sequence of 1, -1, 1, -1, ... . That is, in MATLAB code:
>
> retval = (-1).^(0:n-1).*retval;
>
Because it's a function file to drop somewhere for octave to load.
It's just the T_N function, not your added phase shift.

```
Reply by February 27, 20202020-02-27
```Hello Johann.
I can only make your Feb 26, 2020 code work if I multiply your final 'retval' sequence by an n-length sequence of 1, -1, 1, -1, ... . That is, in MATLAB code:

retval = (-1).^(0:n-1).*retval;
```
Reply by February 26, 20202020-02-26
```On 02/25/2020 09:58 AM, Johann Klammer wrote:
> cheby_t.m
> function retval = cheby_t (n,v)
>   if(abs(v)>1)
>     retval=cosh(n*acosh(v));
>   else
>     retval=cos(n*acos(v));
>   endif
> endfunction
>

I believe this one is more correct:

function retval = chebyshev_t (n,v)
if(v>=1)
retval=cosh(n*acosh(v));
else
if(v<=-1)
retval=((-1) .^ n) * cosh(n*acosh(-v));
else
retval=cos(n*acos(v));
endif
endif
endfunction

```
Reply by February 25, 20202020-02-25
```Hello Johann. You are very welcome.
Sie k&ouml;nnen mich belohnen, indem Sie mir 5 Kilogramm
Nurnberger Bratwurst schicken. :-)
```
Reply by February 25, 20202020-02-25
```On 02/25/2020 12:20 AM, Richard (Rick) Lyons wrote:
> Hi Johann.
> I think the problem may be your 'chebyshev_t()' command. My MATLAB 'A(m)' sequence is equal to your 'A(m)' sequence, but my MATLAB 'W(m)' frequency-domain sequence is NOT equal to your 'freq' sequence. My 'W(m)' sequence is:
>
> W(m) =
> 251.1886 -105.9393, 0.4193   -0.6395, 0.0152, 0.3856, 0.5997,
> 0.7320, 0.8184, 0.8772, 0.9184, 0.9477, 0.9685, 0.9831, 0.9927,
> 0.9982, 1.0000, 0.9982, 0.9927, 0.9831, 0.9685, 0.9477, 0.9184,
> 0.8772, 0.8184, 0.7320, 0.5997, 0.3856, 0.0152   -0.6395,
> 0.4193, -105.9393.
>
> Perhaps you could use the processing in my blog's Step# 5 to compute your 'freq' sequence, and see what happens.
>
> [-Rick-]
>
Yes, that fixes it. Thank you.

N=32;
M=N+1;
gamma=48/20;
alpha=cosh(acosh(10^gamma)/N);
m=[0:N-1];
W=((-1).^m).*cheby_t(N,abs(alpha*cos(pi.*m./N)));
td=ifft(W);
td=real(td);
te=[td(1)/2,td(2:N),td(1)/2];
tf=te/max(te);

and...

cheby_t.m
function retval = cheby_t (n,v)
if(abs(v)>1)
retval=cosh(n*acosh(v));
else
retval=cos(n*acos(v));
endif
endfunction

```
Reply by February 24, 20202020-02-24
```Hi Johann.
I think the problem may be your 'chebyshev_t()' command. My MATLAB 'A(m)' sequence is equal to your 'A(m)' sequence, but my MATLAB 'W(m)' frequency-domain sequence is NOT equal to your 'freq' sequence. My 'W(m)' sequence is:

W(m) =
251.1886 -105.9393, 0.4193   -0.6395, 0.0152, 0.3856, 0.5997,
0.7320, 0.8184, 0.8772, 0.9184, 0.9477, 0.9685, 0.9831, 0.9927,
0.9982, 1.0000, 0.9982, 0.9927, 0.9831, 0.9685, 0.9477, 0.9184,
0.8772, 0.8184, 0.7320, 0.5997, 0.3856, 0.0152   -0.6395,
0.4193, -105.9393.

Perhaps you could use the processing in my blog's Step# 5 to compute your 'freq' sequence, and see what happens.

[-Rick-]
```
Reply by February 24, 20202020-02-24
```On 02/23/2020 10:54 PM, Richard (Rick) Lyons wrote:
> Hello Johann Klammer. I just now saw your posts.
> As far as I know, variable 'gamma' does not have to be an integer.
>
> Looking at your Feb. 13 post, using N = 32 and gamma = 48/20, my MATLAB software computes exactly the same frequency vector as your posted "freq" vector. That is a good thing.
>
> When I execute your code to compute your 'tf' vector (the final window sequence) I obtain the same result as my MATLAB code. As far as I can tell your computed 'tf' sequence is the correct final Chebeshev window sequence.
>
> My computation of your code to compute your 'tf' vector produces:
>
> tf =
> 0.0627, 0.0740, 0.1135, 0.1629, 0.2223, 0.2910, 0.3677, 0.4507,
> 0.5375, 0.6252, 0.7106, 0.7904, 0.8611, 0.9197, 0.9636, 0.9908,
> 1.0000, 0.9908, 0.9636, 0.9197, 0.8611, 0.7904, 0.7106, 0.6252,
> 0.5375, 0.4507, 0.3677, 0.2910, 0.2223, 0.1629, 0.1135, 0.0740,
> 0.0627.
>
> When I plot your 'tf' window sequence it looks good to me.
>
> [-Rick-]
>

from the freq vector in the first post?
then it must be octaves ifft()...

<http://members.aon.at/~aklamme4/scratch/tf.png>

```
Reply by February 23, 20202020-02-23
```Hello Johann Klammer. I just now saw your posts.
As far as I know, variable 'gamma' does not have to be an integer.

Looking at your Feb. 13 post, using N = 32 and gamma = 48/20, my MATLAB software computes exactly the same frequency vector as your posted "freq" vector. That is a good thing.

When I execute your code to compute your 'tf' vector (the final window sequence) I obtain the same result as my MATLAB code. As far as I can tell your computed 'tf' sequence is the correct final Chebeshev window sequence.

My computation of your code to compute your 'tf' vector produces:

tf =
0.0627, 0.0740, 0.1135, 0.1629, 0.2223, 0.2910, 0.3677, 0.4507,
0.5375, 0.6252, 0.7106, 0.7904, 0.8611, 0.9197, 0.9636, 0.9908,
1.0000, 0.9908, 0.9636, 0.9197, 0.8611, 0.7904, 0.7106, 0.6252,
0.5375, 0.4507, 0.3677, 0.2910, 0.2223, 0.1629, 0.1135, 0.0740,
0.0627.

When I plot your 'tf' window sequence it looks good to me.

[-Rick-]
```
Reply by February 21, 20202020-02-21
```On 02/14/2020 10:07 PM, Johann Klammer wrote:
> Nevermind.. it seems the gamma needs2be integer.
>
or maybe not.
there seems to also have been an off by one somewhere.
there still was that weird dip in the middle..

i'm using now
M:N+1;
alpha:cosh(acosh(10^gamma)/N);
A(m):=alpha*cos(%pi*m/M);   //<<here the M
W(m):=chebyshev_t(N,A(m));
append(makelist(''ev(ratsimp(W(n)),numer),n,0,N/2-1),makelist(''ev(ratsimp(W(n)),numer),n,-N/2,-1));

..and shift the impulse resp manually later.

```
Reply by February 14, 20202020-02-14
```Nevermind.. it seems the gamma needs2be integer.

```