Cómo encontrar la convolución circular MOD-2 para las dos secuenciasy .
Sé que la respuesta es de matlab pero no sé cómo encontrarla gráfica o matemáticamente
Cómo encontrar la convolución circular MOD-2 para las dos secuenciasy .
Sé que la respuesta es de matlab pero no sé cómo encontrarla gráfica o matemáticamente
Respuestas:
Escribir y calcule , es decir, divida por y tome solo el resto. Si bien esto parece muy complicado, si lo piensa un poco verá que todo lo que está haciendo es dividir en y y agregando los vectores más cortos para obtener . Repita para para agregar cuatro vectores de longitud para obtener . Presumiblemente, esto no es demasiado difícil de hacer en MATLAB, aunque no estoy lo suficientemente familiarizado con la sintaxis para sugerir comandos específicos. Luego, calcule la convolución cíclica de y preferiblemente sin invocar funciones MATLAB. El resultado es
Matemáticamente, lo que está haciendo es calcular que se puede hacer de manera sencilla al encontrar primero usando FFT y qué ha seguido por el computación (esto efectivamente divide el vector largo en piezas cortas y las agrega), o más simplemente calculando primero y (cortar en vectores más cortos y agregarlos) y luego calcular la convolución cíclica que es fácil de hacer.
Chop-add-convolve es más fácil que convolve-chop-add
Un enfoque es "volver a envolver" una convolución circular de tamaño completo:
sum(reshape(ifft(fft(x, 8) .* conj(fft(h, 8))), 2, 8 / 2), 2)
Otra implementación es diezmar directamente la FFT:
N = 2;
Xf = fft(x); Xf = Xf(1:length(Xf) / N:end);
Hf = fft(h); Hf = Hf(1:length(Hf) / N:end);
ifft(Xf .* conj(Hf))
Si lo que desea reproducir es el comportamiento de cconv desde matlab, podría ser mejor simplemente mirar su código fuente en los archivos de matlab :)