Trans. Fourier discrète, signal carré

(Cliquez-ici pour accéder à la version originale de cette discussion avec couleurs et images)







Posted by: Oodini

Bonjour,

Je n'arrive pas à retrouver la transformée de Fourier du signal
rectangulaire centré sur 0, qui est suppsé être:

sin(pi*f*N)/sin(pi*f) où N est le nombre d'échantillons

Je pars de la formule: sum(k=-N/2,N/2,exp(-2*j*pi*f*k))

Je décompose la somme en deux demi-sommes (le signe de l'exponentielle
change dans le premier terme, et je retranche 1 à cause du 0 compté 2 fois):

sum(k=0,N/2,exp(2*j*pi*f*k)) + sum(k=0,N/2,exp(-2*j*pi*f*k)) - 1

sum(k=0,N,exp(j*pi*f*k)) + sum(k=0,N,exp(-j*pi*f*k)) - 1


soit:

(1-exp(j*pi*f*(N+1)) (1-exp(-j*pi*f*(N+1))
-------------------- + --------------------- - 1
1 - exp(j*pi*f) 1 - exp(j*pi*f)


Et après, je pars sur plusieurs pistes de simplification, mais je ne
m'en sors pas...





Posted by: Oodini

Bon, j'ai rusé...
Mais il me reste néanmoins une erreur (?), qui est minime, mais qui
m'exaspère.

Je vais poser le problème sous une forme plus complète.
Je dois trouver la transformée de Fourier discrète d'un signal de M
échantillons, avec une fenêtre rectangulaire, centrée en 0, et d'une
durée de N échantillons (N/2 échantillons de part et d'autre de
l'origine, donc). Le signal en dehors de la fenêtre a une valeur nulle,
et dans la fenêtre, une valeur de 1.

|<--- N ---->|
____________
| |
| |
| |
__________| |_________

|<------------- M -------------->|


Nous avons f = n/M, où n est l'indice de l'échantillon considéré
0 <= n <= M-1

Je commence par décaler la fenêtre de N/2 afin que le front montant soit
en 0. J'étudie alors le signal la transformée du signal x ainsi créé:

X(f) = sum( k=0 , N-1 , exp(-2*i*pi*f*k) )

(1 - exp(-2*i*pi*f*N))
X(f) = ----------------------
(1 - exp(-2*i*pi*f))

exp(-i*pi*f*N) * (exp(i*pi*f*N) - exp(-i*pi*f*N))
X(f) = -------------------------------------------------
exp(-i*pi*f) * (exp(i*pi*f) - exp(-i*pi*f))

(exp(i*pi*f*N) - exp(-i*pi*f*N))
X(f) = exp(N) * --------------------------------
(exp(i*pi*f) - exp(-i*pi*f))

sin(pi*f*N)
X(f) = exp(N) * -----------
sin(pi*f)

Soit, en remplaçant f:

sin(pi*(n/M)*N)
X(n) = exp(N) * ---------------
sin(pi*(n/M))

Si y est le signal avec la fenêtre centrée à l'origine, nous avons:

Y(n) = exp(i*(2*pi/M))^(-(N/2)*n) * X(n)
= exp(-i*(N/M)*n) * X(n)


Or, la formule qu'avait donnée la prof était:

Y(n) = exp(-i*((N-1)/M)*n) * X(n)

où le N-1 remplace le N

Où est la faille ??

MErci pour votre aide !





Posted by: Oodini

CORRECTION
---------------------------

Bon, j'ai rusé...
Mais il me reste néanmoins une erreur (?), qui est minime, mais qui
m'exaspère.

Je vais poser le problème sous une forme plus complète.
Je dois trouver la transformée de Fourier discrète d'un signal de M
échantillons, avec une fenêtre rectangulaire, situé "au milieu" du
signal (centrée en M/2, donc), et d'une durée de N échantillons. Le
signal en dehors de la fenêtre a une valeur nulle, et dans la fenêtre,
une valeur de 1.
Le signal commence donc, en temps discret, à n=0, et se termine à M-1.
Nous avons f = n/M

L'origine est indiquée par @
----------------------------

|<--- N ---->|
____________
| |
| |
| |
@__________| |_________

|<------------- M -------------->|


--------------------------------------------------------------------
Je commence par caler le début de la fenêtre à l'instant 0. J'étudie
alors le signal la transformée du signal x ainsi créé:

|<--- N ---->|
____________
| |
| |
| |
__________@ |_________

|<------------- M -------------->|

X(f) = sum( k=0 , N-1 , exp(-2*i*pi*f*k) )

(1 - exp(-2*i*pi*f*N))
X(f) = ----------------------
(1 - exp(-2*i*pi*f))

exp(-i*pi*f*N) * (exp(i*pi*f*N) - exp(-i*pi*f*N))
X(f) = -------------------------------------------------
exp(-i*pi*f) * (exp(i*pi*f) - exp(-i*pi*f))

(exp(i*pi*f*N) - exp(-i*pi*f*N))
X(f) = exp(N) * --------------------------------
(exp(i*pi*f) - exp(-i*pi*f))

sin(pi*f*N)
X(f) = exp(N) * -----------
sin(pi*f)

Soit, en remplaçant f:

sin(pi*(n/M)*N)
X(n) = exp(N) * ---------------
sin(pi*(n/M))

--------------------------------------------------------------------

Si y est le signal avec la fenêtre centrée à l'origine, nous avons:

|<--- N ---->|
____________
| |
| |
| |
__________| @ |_________

|<------------- M -------------->|

Y(n) = exp(i*(2*pi/M))^((N/2)*n) * X(n)
= exp(i*(N/M)*n) * X(n)

--------------------------------------------------------------------

Si z est le signal tel que posé, avec la fenêtre centrée en M/2, nous avons:

|<--- N ---->|
____________
| |
| |
| |
@__________| |_________

|<------------- M -------------->|

Z(n) = exp(i*(2*pi/M))^(-(M/2)*n) * Y(n)
= exp(i*(2*pi/M))^(-(M/2)*n) * exp(i*(N/M)*n) * X(n)
= exp(-i*pi*n) * exp(i*(N/M)*n) * X(n)
= exp(i*pi*n*(N/M-1)) * X(n)

Or, la formule qu'avait donnée la prof était (notez le déplacement de
parenthèse):

Y(n) = exp(-i*pi*n*((N-1)/M)) * X(n)

Où est la faille ??

Merci pour votre aide !





Posted by: p.roux

Oodini wrote:

> Bonjour,
>
> Je n'arrive pas à retrouver la transformée de Fourier du signal
> rectangulaire centré sur 0, qui est suppsé être:
>
> sin(pi*f*N)/sin(pi*f) où N est le nombre d'échantillons
>
> Je pars de la formule: sum(k=-N/2,N/2,exp(-2*j*pi*f*k))
>
> Je décompose la somme en deux demi-sommes (le signe de l'exponentielle
> change dans le premier terme, et je retranche 1 à cause du 0 compté 2 fois):
>
> sum(k=0,N/2,exp(2*j*pi*f*k)) + sum(k=0,N/2,exp(-2*j*pi*f*k)) - 1
>
> sum(k=0,N,exp(j*pi*f*k)) + sum(k=0,N,exp(-j*pi*f*k)) - 1
>
> soit:
>
> (1-exp(j*pi*f*(N+1)) (1-exp(-j*pi*f*(N+1))
> -------------------- + --------------------- - 1
> 1 - exp(j*pi*f) 1 - exp(j*pi*f)


1) n'y a t-il pas une erreur au denominateur du deuxieme terme ?
un signe (-) a mettre dans l'exponentielle ?

2)mettre en facteur exp(j*pi*f(N+1)/2) pour le numerateur du premier terme :

exp(j*pi*f(N+1)/2) ( exp( -j*pi*f*(N+1)/2) - exp( +j*pi*f*(N+1)/2) )

pour faire apparaitre un sinus.

on procede de la meme facon avec les autres termes.
ca fait apparaitre un sin(pi*f*(N+1)/2) / sin(pi*f/2)
peut-etre apres les calculs s'arrangent...









Posted by: Yves Kuhry

On Thu, 24 Jun 2004 01:41:34 +0200
Oodini <nospam_svdbg@free.fr> wrote:

> Bonjour,


bonjour
>
> Je n'arrive pas à retrouver la transformée de Fourier du signal
> rectangulaire centré sur 0, qui est suppsé être:
>


[snip]

>
> soit:
>
> (1-exp(j*pi*f*(N+1)) (1-exp(-j*pi*f*(N+1))
> -------------------- + --------------------- - 1
> 1 - exp(j*pi*f) 1 - exp(-j*pi*f)
> ^^^^^^


Tu as oublié le (-)

Ensuite, mettre tout au même dénominateur (le -1 aussi)
Après simplifications, on obtient

cos(Nw)-cos((N+1)w)
------------------- , w=pi*f
1 - cos(w)

Pour finir, utiliser

cos(a)-cos(b) = -2 sin((a+b)/2)sin((a-b)/2)

et

1-cos(a) = 2(sin(a/2))^2

--
Yves Kuhry












-