Minimizing sinc spectral lobes
Multiplication of two time domain sequences corresponds to cyclic (circular) convolution of the DFTs of the two sequences, not to linear convolution as implemented in your code. So if $x[n]$ and $y[n]$ are two length $N$ time domain sequences, and $X[k]$ and $Y[k]$ are their respective DFTs, the following correspondence holds:

$$\text{DFT}_N\left\{x[n]\cdot y[n]\right\}[k]= \frac{1}{N}\sum_{m=0}^{N-1}X[m]Y[(k-m)_N],\quad 0\le k \le N-1$$

where

$$(k-m)_N=k-m+lN$$

with the integer $l$ chosen such that the result is in the range $[0,N-1]$.

Also take a look at this answer to a related question.

EDIT: You also can't use Y1 in the convolution because it is not the DFT but the magnitude of the DFT. You should circularly convolve fft(y) with fft(w).