I am working on the file "NOTEBOOKS/PROBLEMA_4_16.ipynb".
The first task is:
d) Valores extremos
Los dos estados de tensiones anteriores ya quedaron en direcciones principales. Es decir ya tengo los valores principales y por tanto puedo conocer los valores extremos normales y cortantes y compararlos con las condiciones de falla dadas.

Tubería A

Los valores principales, todos a compresión, son:
Can you write Python code for it?

print sigmaWPa[0,0],';',sigmaWPa[1,1], ';', sigmaWPa[2,2]
print


I am working on the file "NOTEBOOKS/PROBLEMA_4_16.ipynb".
The first task is:
e igualando a la condición de falla $100,25\dfrac{Ton}{m^2}$ se puede despejar $w$. Es decir
Can you write Python code for it?

taucrit = 100.25
Wb = 2.0 *taucrit - 96.0
print
print 'Wb=', Wb, 'Ton/m^2'


I am working on the file "NOTEBOOKS/PROBLEMA_4_16.ipynb".
The first task is:
e igualando a la condición de falla $210,5\dfrac{Ton}{m^2}$ se puede despejar $w$. Es decir
Can you write Python code for it?

sigcrit = 210.5
Wa = sigcrit - 100.0
print
print 'Wa=', Wa, 'Ton/m^2'
print


I am working on the file "NOTEBOOKS/PROBLEMA_4_16.ipynb".
The first task is:
e) Determinación del tiempo
Con estos valores Wa y Wb podemos despajar los tiempos para cada tubería
Can you write Python code for it?

ta = Wa - Wo
tb = Wb - Wo
print
print 'Tiempo falla tuberia a =', ta, 'unidades de tiempo'
print 'Tiempo falla tuberia b =', tb, 'unidades de tiempo'


I am working on the file "NOVADataScience-PySpark-MLLib.ipynb".
The first task is:
Almost there! We'll merge the two dataframes to create one dataframe to rule them all. Then we'll take a look at the first few rows.
Can you write Python code for it?

full_vectors_df = vectors_df.merge(tsne_df, left_on='key',
                                   right_on='word', how='inner')

full_vectors_df.head()


I am working on the file "NOVADataScience-PySpark-MLLib.ipynb".
The first task is:
And now we'll take a look at what's in the file.
Can you write Python code for it?


I am working on the file "NOVADataScience-PySpark-MLLib.ipynb".
The first task is:
Cool, but what about seeing other items present in the document? We can use the sample function to accomplish this. It's faster than the takeSample function, but the downside is it's sometimes difficult to know the fraction you need (especially if you don't want to call count).
Can you write Python code for it?


I am working on the file "NOVADataScience-PySpark-MLLib.ipynb".
The first task is:
Create the model and evaluate accuracy
We're finally ready to train our logstic regression model. For this case, we're going to use LogisticRegressionWithLBFGS (more information on limited-memory BFGS, if you're interested).
Can you write Python code for it?

from pyspark.mllib.classification import LogisticRegressionWithLBFGS

logit_model_1 = LogisticRegressionWithLBFGS.train(train)


I am working on the file "NOVADataScience-PySpark-MLLib.ipynb".
The first task is:
Data transformations
The target variable is named y, so let's rename it to something that makes a bit more sense (we'll use "label" in this case).
Can you write Python code for it?


I am working on the file "NOVADataScience-PySpark-MLLib.ipynb".
The first task is:
Did you miss it? We already created a Word2Vec model. Sure, there are quite a few additional options available. Perhaps the most useful are setting the vector size (the dimensionally used for the embedding) and the window size. The defaults are 100 and 5, respectively. Our sentences (analogies, in this case) aren't long at all, so we've restricted the window size. We've also seeded manually in order to reproduce results.
One thing we can do is query the model for synonyms of a particular word. This doesn't necessairly mean the same thing as the English language definition of synonym but rather means words that have similar embedding (via cosine similarity) to the given word.
Can you write Python code for it?


I am working on the file "NOVADataScience-PySpark-MLLib.ipynb".
The first task is:
Does it make sense? A little. We see that most of the words have something to do with being female, and sister is even in the list (pretty high too).
What we did was use the model to transform the word into the vector (a DenseVector in this case). It looks like this.
Can you write Python code for it?


I am working on the file "NOVADataScience-PySpark-MLLib.ipynb".
The first task is:
Excellent! That didn't take long, and now we have a model. By this time, my well-known issues with Matplotlib will continue to effect this data analysis, and we'll pivot away from Python plotting. Since I have access to Tableau, I'm going to get the data in a format where I can export it and visualize it there. If you prefer and love Matplotlib or want to learn Plotly, you should definitely do that! I'd love to see the results!
Let's create a dataframe that has the keys (words) and vectors. There's a hiccup if you try to go directly from the Word2Vec dict to a Pandas dataframe (you'll get a column for every value in the vector, all 100 of them), so we'll take a Pythonic approach to fixing this. I realize this is probably not the most efficient way, but it works for now.
Can you write Python code for it?

individual_rows = []
for key, value in vects.iteritems():
    individual_rows.append([key,np.asarray(list(value))])
vectors_df = pd.DataFrame(individual_rows)
vectors_df.columns = ["key","vector"]


I am working on the file "NOVADataScience-PySpark-MLLib.ipynb".
The first task is:
If we inspect one row of the indexed_df, we can see that we now have numeric values for the two categorical fields.
Can you write Python code for it?


I am working on the file "NOVADataScience-PySpark-MLLib.ipynb".
The first task is:
If we're going to plot the data in two-dimensions, we'll need the t-SNE dimensionality reduction (i.e., the (x,y) coordinates). We already have that calculated; let's remind ourselves what that dataframe looks like.
Can you write Python code for it?


I am working on the file "NOVADataScience-PySpark-MLLib.ipynb".
The first task is:
In order to get down to two dimensions, we specify n_components=2.
Can you write Python code for it?

tsne_model = TSNE(n_components=2, random_state=0)
# np.set_printoptions(suppress=True)


I am working on the file "NOVADataScience-PySpark-MLLib.ipynb".
The first task is:
In order to train the model, we'll split our data into training (70%) and testing (30%). We can use the built-in [randomSplit function](https://spark.apache.org/docs/1.6.2/api/java/org/apache/spark/rdd/RDD.html#randomSplit(double[],%20long) for this.
Can you write Python code for it?

train, test = parsed_data.randomSplit([0.7, 0.3])


I am working on the file "NOVADataScience-PySpark-MLLib.ipynb".
The first task is:
It's useful to see the schema of the data we just imported, even though we know what the website says.
Can you write Python code for it?


I am working on the file "NOVADataScience-PySpark-MLLib.ipynb".
The first task is:
Just to get a handle on the file, let's see how many lines there are.
Can you write Python code for it?


I am working on the file "NOVADataScience-PySpark-MLLib.ipynb".
The first task is:
Looks good! Now we need to use the k-means clustering model to predict what cluster each key (i.e., word) belongs to using its vector representation. We'll do that, then add the results back in to the dataframe as their own column.
Can you write Python code for it?

vectors_df['cluster_label'] = vectors_df['vector'].apply(lambda x: clusters.predict(x))

vectors_df.head()


I am working on the file "NOVADataScience-PySpark-MLLib.ipynb".
The first task is:
Now we can do the dimensionality reduction.
Can you write Python code for it?


I am working on the file "NOVADataScience-PySpark-MLLib.ipynb".
The first task is:
Now we can plot it! I'll use Seaborn just to make it pretty. And don't forget to set alpha transparency!
Can you write Python code for it?

%matplotlib inline
ax = sns.lmplot('x', 'y', tsne_df, fit_reg=False, size=8,
               scatter_kws={'alpha':0.7,'s':60})


I am working on the file "NOVADataScience-PySpark-MLLib.ipynb".
The first task is:
Okay, now what? The whole point of doing this was to get a better picture (get it, picture?) of what the word embeddings look like. So we'll plot it.
Disclaimer: I very much dislike plotting using Matplotlib. Nothing against it or you if you love it; it's just not for me. So what follows isn't super efficient, but it keeps me happy.
Let's create a Pandas dataframe with the t-SNE (x, y) output.
Can you write Python code for it?

tsne_df = pd.DataFrame(tsne_out, columns=['x','y'])


I am working on the file "NOVADataScience-PySpark-MLLib.ipynb".
The first task is:
That wasn't too bad. Now that we have the vectors as arrays in a RDD, we can train the k-means model. Of course, we need to define k before we can cluster. There are other clustering methods (e.g., Unsupervised Niche Clustering) that don't requrie k to be known a priori, but that's a little more than we want to deal with right now. Also, it's not built into MLLib (and we've already cheated plenty).
We'll make an educated guess that k is 10. If you like, you can experiment with differnet values of k to see what happens.
Can you write Python code for it?

clusters = KMeans.train(vectors_rdd, 10,
                       maxIterations=10, initializationMode="random")


I am working on the file "NOVADataScience-PySpark-MLLib.ipynb".
The first task is:
There are a number of categorical variables that we'd like to use in our classifier, so we'll need to convert them to a numerical type. StringIndexer in pyspark.ml is useful for this. Although we won't use it in this example, there is a complementary function (IndexToString) that can map a column of label indices back to their original string (original categorical) values. Handy!
For this first model, we're going to select some features seemingly randomly (I know, but it's just the first time through to demo). We'll use one numerical field as well as one categorical field. The numerical fields are fine, but we'll need to use StringIndexer to deal with the categorical field. Since the label is also categorical ("yes" or "no"), we'll also have to deal with that too.
Can you write Python code for it?

from pyspark.ml.feature import StringIndexer
indexers = [StringIndexer(inputCol="job", outputCol="job_index"),
            StringIndexer(inputCol="loan", outputCol="loan_index"),
            StringIndexer(inputCol="label", outputCol="label_index")]


I am working on the file "NOVADataScience-PySpark-MLLib.ipynb".
The first task is:
This is all well and good, but what if we want to visualize the results? Unless you have a 100-dimensional display, this can get difficult. Thankfully, there are some simple ways we can still get a nice two-dimensional representation of the vectors.
Pick your favorite dimensionality reduction technique. We'll use t-SNE (of course we will, it won a prize!). We're cheating a bit and using sklearn though.
Can you write Python code for it?

import numpy as np
from sklearn.manifold import TSNE


I am working on the file "NOVADataScience-PySpark-MLLib.ipynb".
The first task is:
This isn't terrible, but we can maybe do better. Let's introduce a few more features and create a second model.
A second model with more/different features
In addition to the features used in the first model, we're now also going to use default, poutcome (how did they participate in the previous campaign), and two variables (pdays and pcampaign) that show how the client was contacted in the previous campaign. We'd also like to add in some economic factors, so we'll include euribor3m.
For completeness, we'll reproduce the steps in creating the above model (including the import statements).
Can you write Python code for it?

from pyspark.ml.feature import StringIndexer
indexers = [StringIndexer(inputCol="job", outputCol="job_index"),
           StringIndexer(inputCol="label", outputCol="label_index"),
           StringIndexer(inputCol="default", outputCol="default_index"),
           StringIndexer(inputCol="poutcome", outputCol="poutcome_index")]

from pyspark.ml import Pipeline
index_pipeline = Pipeline(stages=indexers)
indexed_df = index_pipeline.fit(df).transform(df)


I am working on the file "NOVADataScience-PySpark-MLLib.ipynb".
The first task is:
We also would like to know how many rows we're dealing with here.
Can you write Python code for it?

print "Number of rows in dataset =", df.count()


I am working on the file "NOVADataScience-PySpark-MLLib.ipynb".
The first task is:
We'll look at what we have, just to make sure we're on the right track.
Can you write Python code for it?


I am working on the file "NPlayerGames/NPlayerGames.ipynb".
The first task is:
(The Interactive Map may not be rendered on Github)
Can you write Python code for it?


I am working on the file "NPlayerGames/NPlayerGames.ipynb".
The first task is:
Configuring stuff for visualizations
Can you write Python code for it?


I am working on the file "NPlayerGames/NPlayerGames.ipynb".
The first task is:
Converting current score number range to smaller range maintaining ratio
Can you write Python code for it?

old_range = max(agent_score) - min(agent_score)
new_range = 35
new_agent_scores = []
for old_val in agent_score:
    new_agent_scores.append( (((old_val-min(agent_score))*new_range)/old_range) + 10 )
#print(old_range)


I am working on the file "NPlayerGames/NPlayerGames.ipynb".
The first task is:
Displaying Scores and Summary of Game:
Can you write Python code for it?

layers = []
fig = gmaps.Map()
#print('Agent Name \t\t\t| Location  \t\t\t|  Total Score')
for i, loc in enumerate(locs):
    #print('{0} \t\t\t| {1} \t\t\t| \t\t{2}'.format(agent_name[i], names[i], new_agent_scores[i]))
    _layer = gmaps.heatmap_layer(loc, point_radius=int(new_agent_scores[i]))
    fig.add_layer(_layer)
d ={'Agent Name': agent_name, 'Location': names, 'Total Score': agent_score, 'Radius Size': new_agent_scores}
fig


I am working on the file "NPlayerGames/NPlayerGames.ipynb".
The first task is:
Playing Peace War Game with 14 Players for 650,000 iterations
Can you write Python code for it?

tf.reset_default_graph()
game = NPlayerGame(n_players=14) # Create 13 agents of random type
game.play(650000) # Play 600,000 iterations


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:
 Les variables x et y sont tout deux des vecteurs de 1 colonne et 8 lignes. L'operation ' transposer un vecteur ligne en colonne ou le contraire.

On définit une nouvelle fonction en ligne:

Can you write Python code for it?

%%matlab
ftheta = inline('theta(1)+theta(2)*x','theta','x');


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:
Il y a 51 décharges pour l'essai 2.
Can you write Python code for it?

%%matlab
size(spike(10).times) %nb de décharges pour l'essai 10


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:
L'argument [1 1] est une valeur initiale de la méthode qui cherche la valeur theta_chap. En répétant l'expérience pour plusieurs valeurs ([2 2], [30 30], [-30 -30]) on voit que la résultat theta_chap ne semble pas dépendre ici de ce paramètre.

Maintenant représenter le résultat de la régression.

Can you write Python code for it?

%%matlab
figure
plot(x,y,'b.');
hold on
plot(x,ftheta(theta_chap,x),'r');


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:
La commande randn permet de simuler du bruit suivant une distribution normale (Gaussienne) de moyenne nulle et de variance 1.

 Générer un graphe de la relation entre x et y, et sauvegardez cette image dans un fichier donnees_cosinus.png.
Can you write Python code for it?

%%matlab
figure
plot(x,y,'.')
print('donnees_cosinus.png','-dpng')


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:
Les variables x et y sont des vecteurs lignes de longueur 301.

 A quoi sert la fonction randn (utilisez la commande help ).
Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:
ftheta est une fonction en ligne (inline).

Estimez les coefficients de régression à l’aide de la fonction :

Can you write Python code for it?

%%matlab
theta_chap = nlinfit(x, y, ftheta, [1 1] );


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:

 Faire une nouvelle figure où chaque barre du diagramme a une hauteur
    de 0.5, plutôt que 1. Sauvegardez ce fichier sous le nom "figure_dispersion_lignes.png".

</ol></font>
Can you write Python code for it?

%%matlab
for num_temps = 1:length(t1)
    line([t1(num_temps) t1(num_temps)], [0 0.5])
end
xlabel('Temp (sec)')
%Idem pour l’axe des y:
ylabel('Essai #')
%Enfin, on fixe les limites de l’axe des y
ylim([0 3])


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:

Reprenez le code du fichier et remplissez la boucle afin de réaliser
    un histogramme pour l’ensemble des essais

Can you write Python code for it?

%%matlab
%Charger les donnees
load('Chap17_Data')

% Definir les centres des intervalles pour l'histogramme
centres = [-0.95:0.1:0.95];

% Initialiser une matrice de zéros histo dont la longueur est égale au nombre d'intervalles:
histo = zeros(length(centres),1);

% Faire une boucle à travers tous les essais et recuperer le nombre de decharges par intervalle avec la fonction histc
for jj = 1:47
    histo=histo+histc(spike(jj).times,centres);
end

% Dessiner l'histograme avec la fonction bar
bar(centres,histo);

%Ajuster les limites de l'axe des x
xlim([-1.1 1]);

%Donner un label à l’axe des x
xlabel('Temps (sec)');

%Donner un label à l’axe des y
ylabel('# essai');


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:

 Vous allez compléter, à partir du fichier , les 4 lignes de code
    manquante à l’interieure de la boucle pour tracer tous les essais
    (47) dans une même figure. Le résultat ressemblerait à la figure
    suivante:

</ol></font>
Can you write Python code for it?

%%matlab
% Charger les donnees
load('Chap17_Data')
% Preparer une figure
figure
% permettre la superposition de plusieurs graphiques dans la meme figure
hold on
% Donner un label à l'axe des x
xlabel('Temp (sec)');
% Donner un label à l'axe des y
ylabel('Essai #');
% Ajuster les limites de l'axe des y
ylim([0 length(spike)]);

for num_spike = 1:length(spike) %faire une boucle pour tout les essaies
    t = spike(num_spike).times; %definir la variable pour chaque essai
    for num_temps=1:length(t) %faire une boucle pour tous les points temps
        line([t(num_temps) t(num_temps)], [0+(num_spike-1) 1+(num_spike-1)]); %dessiner une line pour chaque point temps t1(i) avec longueur de 1
    end
end


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:
 Quel est le type de la variable ftheta?
Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:

Utilisez la fonction `ylim` pour changer les limites de l’axe y de 40 à 95.
    Ajouter le label `taille` sur l’axe des x avec la commande `xlabel`, et le label `poids` sur
    l’axe des y avec la commande `ylabel`. Faites une sauvegarde de cette image,
    dans un fichier `regression_notes.png`.

</ol></font>
Can you write Python code for it?

%%matlab
figure
plot(x,y,'b.');
hold on
plot(x,ftheta(theta_chap,x),'r');
ylim([40 95])
xlabel('taille')
ylabel('poids')
print('regression_notes.png','-dpng')


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:
Examinez le contenu de la variable histo. Quelle est sa taille ? Son minimum, maximum, sa moyenne (voir les fonctions matlab min, max, mean ).
Can you write Python code for it?

%%matlab
whos histo % elle est de taille 1x20

%%matlab
min(histo)
max(histo)
mean(histo)


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:
Quelle est la taille de x? La taille de y?
Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:

 Chargeons de nouveau les données:

Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:

La commande `whos` nous permet de déterminer quelles variables sont disponibles dans l’espace de travail, ainsi que leur type.

Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:

Initialiser une matrice de zéros dont la longueur est égale au
    nombre d’intervalles:

Can you write Python code for it?

%%matlab
histo = zeros(1,length(centres));


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:

Récupérez le nombre de décharges par intervalle de temps dans
    l’essai numéro 1, à l’aide avec la fonction .

Can you write Python code for it?

%%matlab
histo = hist(spike(1).times,centres);


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:

 On ouvre une nouvelle fenêtre, dédiée à la visualisation:

Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:

Dessinez l’histogramme avec la fonction `bar`.

Can you write Python code for it?

%%matlab
bar(centres,histo);
 %Ajuster les limites de l’axe des x
xlim([-1.1 1]);
xlabel('Temps (sec)');  %Donner un label à l’axe des x
ylabel('# essai');%Donner un label à l’axe des y


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:

Maintenant nous allons ajuster une courbe plus complexe, un cosinus.
    On commence par simuler des données:

Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:

Estimez les coefficients de régression à l’aide de la fonction :

Quelles sont les valeurs de theta_chap ?
Can you write Python code for it?

%%matlab
theta_chap = nlinfit(x, y, ftheta, [0 1 1] )


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:
Attention à la deuxième instruction! Elle permet de dessiner
plusieurs objets sur une même figure, l’un à la suite de l’autre,
sans ré-initialiser la figure.

 Maintenant on va tracer la première ligne du diagramme. Notez que le
    nombre de décharges dans l’essai 1 est . On applique une boucle :

Can you write Python code for it?

%%matlab
for num_temps = 1:length(t1)
    line([t1(num_temps) t1(num_temps)], [0 1])
end


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:
Le champ "spikes(1).times" contient les temps de décharges de potentiels d’action pour
le premier essai. La commande permet de déterminer la taille de ce
vecteur, c’est à dire le nombre de décharges détectées:
Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:
Section 1 : Diagramme de dispersion
Nous allons commencer par effectuer un diagramme de dispersion
(scatter plot) de l’activation d’un neurone tout au long de la durée
d’un essai. Voir le script pour suivre ces étapes.

Commençons par charger les données:

Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:
Section 2 : Histogramme
Nous allons continuer l’exploration des données à travers un histogramme
qui résumerait la somme des activations dans un intervalle de temps
donné. Voir le script histograme_essai1.m pour reproduire les commandes suivantes:

Commençons par nettoyer l’espace de travail:

Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Matlab-checkpoint.ipynb".
The first task is:
Section 3 : Régression
Nous allons maintenant implémenter une régression à l’aide de Matlab.

Commençons par nettoyer l’espace de travail:

Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:
 Les variables x et y sont tout deux des vecteurs de 1 colonne et 8 lignes. L'operation ' transposer un vecteur ligne en colonne ou le contraire.

On définit une nouvelle fonction en ligne:

Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:
Il y a 85 décharges pour l'essai 10.

 La commande suivante va présenter l’ensemble des temps de décharge pour l’essai 1.

>> spike(1).times
           -0.9893
           -0.9402
           -0.9158
        (...)

 Quelle est l’unité probable de ces temps? Pourquoi y-a-t-il des
valeurs négatives?

L'unité est en secondes et les valeurs négatives indiquent un temps de décharge qui précède le signal de départ le de l'expérience

 On extrait les temps de décharges des deux premiers essais dans deux
    variables `t1` et `t2`:

Can you write Python code for it?

 %%matlab
 t1 = spike(1).times;
 t2 = spike(2).times;


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:
Les variables x et y sont des vecteurs lignes de longueur 301.

 A quoi sert la fonction randn (utilisez la commande help ).
Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:
ftheta est une fonction en ligne (inline).

Estimez les coefficients de régression à l’aide de la fonction :

Can you write Python code for it?

%%matlab
% theta_chap = nlinfit(x, y, ftheta, [1 1] );
theta_chap = [-237.5729    1.7794];


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:

 Faire une nouvelle figure où chaque barre du diagramme a une hauteur
    de 0.5, plutôt que 1. Sauvegardez ce fichier sous le nom "figure_dispersion_lignes.png".

</ol></font>
Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:

 Vous allez compléter, à partir du fichier , les 4 lignes de code
    manquante à l’interieure de la boucle pour tracer tous les essais
    (47) dans une même figure. Le résultat ressemblerait à la figure
    suivante:

</ol></font>
Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:
 Quel est le type de la variable ftheta?
Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:
 Quelles sont les valeurs de theta_chap? A quoi sert l’argument [1 1]? Essayez de reproduire l’estimation avec d’autres valeurs pour cet argument, est-ce que cela affecte le résultat?

Le paramètre theta_chap vaut [-237.5729 1.7794]. L'argument [1 1] est une valeur initiale de la méthode qui cherche la valeur theta_chap. En répétant l'expérience pour plusieurs valeurs ([2 2], [30 30], [-30 -30]) on voit que la résultat theta_chap ne semble pas dépendre ici de ce paramètre.

Maintenant représenter le résultat de la régression.

Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:
<font color="red"> Quels est la taille et le contenu des vecteurs x et y? A quoi sert l'opération ' ? </font>
Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:

Utilisez la fonction `ylim` pour changer les limites de l’axe y de 40 à 95.
    Ajouter le label `taille` sur l’axe des x avec la commande `xlabel`, et le label `poids` sur
    l’axe des y avec la commande `ylabel`. Faites une sauvegarde de cette image,
    dans un fichier `regression_notes.png`.

</ol></font>
Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:
Combien y-a-t-il eu de décharges pour l’essai 2? pour l’essai 10?
Can you write Python code for it?

%%matlab
size(spike(2).times) %nb de décharges pour l'essai 2


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:
Examinez le contenu de la variable histo. Quelle est sa taille ? Son minimum, maximum, sa moyenne (voir les fonctions matlab min, max, mean ).
Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:
Quelle est la taille de x? La taille de y?
Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:
Quelle est la valeur de la fonction ftheta pour theta=[0 1 1] et x=0 ?
Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:
Quelles sont les valeurs de theta_chap ?

La variable theta_chap vaut [-0.0216 1.1005 0.1539].

A quoi sert l’argument [0 1 1] ? Essayez de reproduire l’estimation avec d’autres valeurs pour cet argument, est-ce que cela affecte le résultat?

L'argument [0 1 1] jour le même rôle que le paramètre [1 1] à la question 4. En utilisant une valeur différente du paramètre (par exemple [0 1 10]) on trouve une valeur différente pour theta_chap. C'est parce que la fonction ftheta est périodique, et il existe donc une infinité de valeurs d'entrée qui donnent la même sortie.

 Maintenant représenter le résultat de la régression.

Can you write Python code for it?

%%matlab
figure
plot(x,y,'b');
hold on
plot(x,ftheta(theta_chap,x),'r');

    Faites une sauvegarde de cette image, dans un fichier .


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:
Quelles variables sont présentes? Quel est le type de la variable spike? Quelle est sa taille?

Les variables sont direction, go, intruction, spike et unit. La variable spike est de type structure et de taille 1x47

La variable spike contient les temps des potentiels d’action détectés pour
    un neurone. Chaque entrée de la structure contient les données d’un
    essai différent. Il est possible de lister les champs de la
    structure avec la commande fieldnames:

Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:

 Chargeons de nouveau les données:

Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:

Maintenant nous allons récuperer les données de “notes” du cours.

Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:

Initialiser une matrice de zéros dont la longueur est égale au
    nombre d’intervalles:

Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:

Récupérez le nombre de décharges par intervalle de temps dans
    l’essai numéro 1, à l’aide avec la fonction .

Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:

 On ouvre une nouvelle fenêtre, dédiée à la visualisation:

Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:

On va maintenant définir une fonction de trois paramètres:

Can you write Python code for it?

%%matlab
ftheta = inline('theta(1)+theta(2)*cos(x-theta(3))','theta','x');


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:

Estimez les coefficients de régression à l’aide de la fonction :

Can you write Python code for it?

%%matlab
theta_chap = nlinfit(x, y, ftheta, [0 1 1] );


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:
Notez l’utilisation de la commande line.

 On va maintenant ajouter un label sur l’axe des x et y .

 Sauvegardez la figure dans un fichier png (utilisez la commande print), sous le nom figure_dispersion.png

Can you write Python code for it?

%%matlab
for num_temps = 1:length(t1)
    line([t1(num_temps) t1(num_temps)], [0 1])
end
xlabel('Temp (sec)');
%Idem pour l’axe des y:
ylabel('Essai #')
%Enfin, on fixe les limites de l’axe des y
ylim([0 3])
% save the result
print('figure_dispersion.png','-dpng')


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:
Section 1 : Diagramme de dispersion
Nous allons commencer par effectuer un diagramme de dispersion
(scatter plot) de l’activation d’un neurone tout au long de la durée
d’un essai. Voir le script pour suivre ces étapes.

Commençons par charger les données:

Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:
Section 2 : Histogramme
Nous allons continuer l’exploration des données à travers un histogramme
qui résumerait la somme des activations dans un intervalle de temps
donné. Voir le script histograme_essai1.m pour reproduire les commandes suivantes:

Commençons par nettoyer l’espace de travail:

Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/labo_NSC2006_donnees_multidimentionnelles_Octave-checkpoint.ipynb".
The first task is:
Section 3 : Régression
Nous allons maintenant implémenter une régression à l’aide de Matlab.

Commençons par nettoyer l’espace de travail:

Can you write Python code for it?


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/test1_plotly_local_install-checkpoint.ipynb".
The first task is:
Converting a matplotlib graph into an interactive graph inside an IPython notebook
Can you write Python code for it?

import matplotlib.pyplot as plt
import numpy as np
import plotly.plotly as py

n = 50
x, y, z, s, ew = np.random.rand(5, n)
c, ec = np.random.rand(2, n, 4)
area_scale, width_scale = 500, 5

fig, ax = plt.subplots()
sc = ax.scatter(x, y, c=c,
                s=np.square(s)*area_scale,
                edgecolor=ec,
                linewidth=ew*width_scale)
ax.grid()

py.iplot_mpl(fig)


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/test1_plotly_local_install-checkpoint.ipynb".
The first task is:
Creating an interactive graph inside an IPython notebook
Can you write Python code for it?

import plotly.plotly as py
from plotly.graph_objs import *

trace0 = Scatter(
    x=[1, 2, 3, 4],
    y=[10, 15, 13, 17]
)
trace1 = Scatter(
    x=[1, 2, 3, 4],
    y=[16, 5, 11, 9]
)
data = Data([trace0, trace1])

py.iplot(data, filename = 'basic-line')


I am working on the file "NSC2006/labo1/.ipynb_checkpoints/test1_plotly_local_install-checkpoint.ipynb".
The first task is:
Embedding a Plotly graph inside an IPython notebook
Can you write Python code for it?

import plotly.tools as tls

tls.embed("https://plot.ly/~streaming-demos/4")


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:
 Les variables x et y sont tout deux des vecteurs de 1 colonne et 8 lignes. L'operation ' transposer un vecteur ligne en colonne ou le contraire.

On définit une nouvelle fonction en ligne:

Can you write Python code for it?

%%matlab
ftheta = inline('theta(1)+theta(2)*x','theta','x');


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:
L'argument [1 1] est une valeur initiale de la méthode qui cherche la valeur theta_chap. En répétant l'expérience pour plusieurs valeurs ([2 2], [30 30], [-30 -30]) on voit que la résultat theta_chap ne semble pas dépendre ici de ce paramètre.

Maintenant représenter le résultat de la régression.

Can you write Python code for it?

%%matlab
figure
plot(x,y,'b.');
hold on
plot(x,ftheta(theta_chap,x),'r');


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:
La commande randn permet de simuler du bruit suivant une distribution normale (Gaussienne) de moyenne nulle et de variance 1.

 Générer un graphe de la relation entre x et y, et sauvegardez cette image dans un fichier donnees_cosinus.png.
Can you write Python code for it?

%%matlab
figure
plot(x,y,'.')
print('donnees_cosinus.png','-dpng')


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:
Les variables x et y sont des vecteurs lignes de longueur 301.

 A quoi sert la fonction randn (utilisez la commande help ).
Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:
ftheta est une fonction en ligne (inline).

Estimez les coefficients de régression à l’aide de la fonction :

Can you write Python code for it?

%%matlab
theta_chap = nlinfit(x, y, ftheta, [1 1] );


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:

 Faire une nouvelle figure où chaque barre du diagramme a une hauteur
    de 0.5, plutôt que 1. Sauvegardez ce fichier sous le nom "figure_dispersion_lignes.png".

</ol></font>
Can you write Python code for it?

%%matlab
for num_temps = 1:length(t1)
    line([t1(num_temps) t1(num_temps)], [0 0.5])
end
xlabel('Temp (sec)')
%Idem pour l’axe des y:
ylabel('Essai #')
%Enfin, on fixe les limites de l’axe des y
ylim([0 3])


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:

Reprenez le code du fichier et remplissez la boucle afin de réaliser
    un histogramme pour l’ensemble des essais

Can you write Python code for it?

%%matlab
%Charger les donnees
load('Chap17_Data')

% Definir les centres des intervalles pour l'histogramme
centres = [-0.95:0.1:0.95];

% Initialiser une matrice de zéros histo dont la longueur est égale au nombre d'intervalles:
histo = zeros(length(centres),1);

% Faire une boucle à travers tous les essais et recuperer le nombre de decharges par intervalle avec la fonction histc
for jj = 1:47
    histo=histo+histc(spike(jj).times,centres);
end

% Dessiner l'histograme avec la fonction bar
bar(centres,histo);

%Ajuster les limites de l'axe des x
xlim([-1.1 1]);

%Donner un label à l’axe des x
xlabel('Temps (sec)');

%Donner un label à l’axe des y
ylabel('# essai');


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:

 Vous allez compléter, à partir du fichier , les 4 lignes de code
    manquante à l’interieure de la boucle pour tracer tous les essais
    (47) dans une même figure. Le résultat ressemblerait à la figure
    suivante:

</ol></font>
Can you write Python code for it?

%%matlab
% Charger les donnees
load('Chap17_Data')
% Preparer une figure
figure
% permettre la superposition de plusieurs graphiques dans la meme figure
hold on
% Donner un label à l'axe des x
xlabel('Temp (sec)');
% Donner un label à l'axe des y
ylabel('Essai #');
% Ajuster les limites de l'axe des y
ylim([0 length(spike)]);

for num_spike = 1:length(spike) %faire une boucle pour tout les essaies
    t = spike(num_spike).times; %definir la variable pour chaque essai
    for num_temps=1:length(t) %faire une boucle pour tous les points temps
        line([t(num_temps) t(num_temps)], [0+(num_spike-1) 1+(num_spike-1)]); %dessiner une line pour chaque point temps t1(i) avec longueur de 1
    end
end


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:
 Quel est le type de la variable ftheta?
Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:
 Quelles sont les valeurs de theta_chap? A quoi sert l’argument [1 1]? Essayez de reproduire l’estimation avec d’autres valeurs pour cet argument, est-ce que cela affecte le résultat?

Le paramètre theta_chap vaut:
Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:
<font color="red"> Quels est la taille et le contenu des vecteurs x et y? A quoi sert l'opération ' ? </font>
Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:

Utilisez la fonction `ylim` pour changer les limites de l’axe y de 40 à 95.
    Ajouter le label `taille` sur l’axe des x avec la commande `xlabel`, et le label `poids` sur
    l’axe des y avec la commande `ylabel`. Faites une sauvegarde de cette image,
    dans un fichier `regression_notes.png`.

</ol></font>
Can you write Python code for it?

%%matlab
figure
plot(x,y,'b.');
hold on
plot(x,ftheta(theta_chap,x),'r');
ylim([40 95])
xlabel('taille')
ylabel('poids')
print('regression_notes.png','-dpng')


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:
A quoi sert l’argument [0 1 1] ? Essayez de reproduire l’estimation avec d’autres valeurs pour cet argument, est-ce que cela affecte le résultat?

L'argument [0 1 1] jour le même rôle que le paramètre [1 1] à la question 4. En utilisant une valeur différente du paramètre (par exemple [0 1 10]) on trouve une valeur différente pour theta_chap. C'est parce que la fonction ftheta est périodique, et il existe donc une infinité de valeurs d'entrée qui donnent la même sortie.

 Maintenant représenter le résultat de la régression.

Can you write Python code for it?

%%matlab
figure
plot(x,y,'b');
hold on
plot(x,ftheta(theta_chap,x),'r');


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:
Quelle est la taille de x? La taille de y?
Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:
Quelle est la valeur de la fonction ftheta pour theta=[0 1 1] et x=0 ?
Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:
Quelles variables sont présentes? Quel est le type de la variable spike? Quelle est sa taille?

Les variables sont direction, go, intruction, spike et unit. La variable spike est de type structure et de taille 1x47

La variable spike contient les temps des potentiels d’action détectés pour
    un neurone. Chaque entrée de la structure contient les données d’un
    essai différent. Il est possible de lister les champs de la
    structure avec la commande fieldnames:

Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:

 Chargeons de nouveau les données:

Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:

La commande `whos` nous permet de déterminer quelles variables sont disponibles dans l’espace de travail, ainsi que leur type.

Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:

Initialiser une matrice de zéros dont la longueur est égale au
    nombre d’intervalles:

Can you write Python code for it?

%%matlab
histo = zeros(1,length(centres));


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:

Dessinez l’histogramme avec la fonction `bar`.

Can you write Python code for it?

%%matlab
bar(centres,histo);
 %Ajuster les limites de l’axe des x
xlim([-1.1 1]);
xlabel('Temps (sec)');  %Donner un label à l’axe des x
ylabel('# essai');%Donner un label à l’axe des y


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:

Maintenant nous allons ajuster une courbe plus complexe, un cosinus.
    On commence par simuler des données:

Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:

On va maintenant définir une fonction de trois paramètres:

Can you write Python code for it?

%%matlab
ftheta = inline('theta(1)+theta(2)*cos(x-theta(3))','theta','x');


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:
Attention à la deuxième instruction! Elle permet de dessiner
plusieurs objets sur une même figure, l’un à la suite de l’autre,
sans ré-initialiser la figure.

 Maintenant on va tracer la première ligne du diagramme. Notez que le
    nombre de décharges dans l’essai 1 est . On applique une boucle :

Can you write Python code for it?

%%matlab
for num_temps = 1:length(t1)
    line([t1(num_temps) t1(num_temps)], [0 1])
end


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:
Le champ "spikes(1).times" contient les temps de décharges de potentiels d’action pour
le premier essai. La commande permet de déterminer la taille de ce
vecteur, c’est à dire le nombre de décharges détectées:
Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:
Notez l’utilisation de la commande line.

 On va maintenant ajouter un label sur l’axe des x et y .

 Sauvegardez la figure dans un fichier png (utilisez la commande print), sous le nom figure_dispersion.png

Can you write Python code for it?

%%matlab
for num_temps = 1:length(t1)
    line([t1(num_temps) t1(num_temps)], [0 1])
end
xlabel('Temp (sec)');
%Idem pour l’axe des y:
ylabel('Essai #')
%Enfin, on fixe les limites de l’axe des y
ylim([0 3])
% save the result
print('figure_dispersion.png','-dpng')


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:
Section 1 : Diagramme de dispersion
Nous allons commencer par effectuer un diagramme de dispersion
(scatter plot) de l’activation d’un neurone tout au long de la durée
d’un essai. Voir le script pour suivre ces étapes.

Commençons par charger les données:

Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:
Section 2 : Histogramme
Nous allons continuer l’exploration des données à travers un histogramme
qui résumerait la somme des activations dans un intervalle de temps
donné. Voir le script histograme_essai1.m pour reproduire les commandes suivantes:

Commençons par nettoyer l’espace de travail:

Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Matlab.ipynb".
The first task is:
Section 3 : Régression
Nous allons maintenant implémenter une régression à l’aide de Matlab.

Commençons par nettoyer l’espace de travail:

Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Octave.ipynb".
The first task is:
 Les variables x et y sont tout deux des vecteurs de 1 colonne et 8 lignes. L'operation ' transposer un vecteur ligne en colonne ou le contraire.

On définit une nouvelle fonction en ligne:

Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Octave.ipynb".
The first task is:
Il y a 51 décharges pour l'essai 2.
Can you write Python code for it?

%%matlab
size(spike(10).times) %nb de décharges pour l'essai 10


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Octave.ipynb".
The first task is:
Il y a 85 décharges pour l'essai 10.

 La commande suivante va présenter l’ensemble des temps de décharge pour l’essai 1.

>> spike(1).times
           -0.9893
           -0.9402
           -0.9158
        (...)

 Quelle est l’unité probable de ces temps? Pourquoi y-a-t-il des
valeurs négatives?

L'unité est en secondes et les valeurs négatives indiquent un temps de décharge qui précède le signal de départ le de l'expérience

 On extrait les temps de décharges des deux premiers essais dans deux
    variables `t1` et `t2`:

Can you write Python code for it?

 %%matlab
 t1 = spike(1).times;
 t2 = spike(2).times;


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Octave.ipynb".
The first task is:
ftheta est une fonction en ligne (inline).

Estimez les coefficients de régression à l’aide de la fonction :

Can you write Python code for it?

%%matlab
% theta_chap = nlinfit(x, y, ftheta, [1 1] );
theta_chap = [-237.5729    1.7794];


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Octave.ipynb".
The first task is:

 Faire une nouvelle figure où chaque barre du diagramme a une hauteur
    de 0.5, plutôt que 1. Sauvegardez ce fichier sous le nom "figure_dispersion_lignes.png".

</ol></font>
Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Octave.ipynb".
The first task is:
 Quel est le type de la variable ftheta?
Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Octave.ipynb".
The first task is:
 Quelles sont les valeurs de theta_chap? A quoi sert l’argument [1 1]? Essayez de reproduire l’estimation avec d’autres valeurs pour cet argument, est-ce que cela affecte le résultat?

Le paramètre theta_chap vaut [-237.5729 1.7794]. L'argument [1 1] est une valeur initiale de la méthode qui cherche la valeur theta_chap. En répétant l'expérience pour plusieurs valeurs ([2 2], [30 30], [-30 -30]) on voit que la résultat theta_chap ne semble pas dépendre ici de ce paramètre.

Maintenant représenter le résultat de la régression.

Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Octave.ipynb".
The first task is:
<font color="red"> Quels est la taille et le contenu des vecteurs x et y? A quoi sert l'opération ' ? </font>
Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Octave.ipynb".
The first task is:

Utilisez la fonction `ylim` pour changer les limites de l’axe y de 40 à 95.
    Ajouter le label `taille` sur l’axe des x avec la commande `xlabel`, et le label `poids` sur
    l’axe des y avec la commande `ylabel`. Faites une sauvegarde de cette image,
    dans un fichier `regression_notes.png`.

</ol></font>
Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Octave.ipynb".
The first task is:
Examinez le contenu de la variable histo. Quelle est sa taille ? Son minimum, maximum, sa moyenne (voir les fonctions matlab min, max, mean ).
Can you write Python code for it?

%%matlab
whos histo % elle est de taille 1x20

%%matlab
min(histo)
max(histo)
mean(histo)


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Octave.ipynb".
The first task is:
Quelle est la taille de x? La taille de y?
Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Octave.ipynb".
The first task is:
Quelle est la valeur de la fonction ftheta pour theta=[0 1 1] et x=0 ?
Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Octave.ipynb".
The first task is:
Quelles sont les valeurs de theta_chap ?

La variable theta_chap vaut [-0.0216 1.1005 0.1539].

A quoi sert l’argument [0 1 1] ? Essayez de reproduire l’estimation avec d’autres valeurs pour cet argument, est-ce que cela affecte le résultat?

L'argument [0 1 1] jour le même rôle que le paramètre [1 1] à la question 4. En utilisant une valeur différente du paramètre (par exemple [0 1 10]) on trouve une valeur différente pour theta_chap. C'est parce que la fonction ftheta est périodique, et il existe donc une infinité de valeurs d'entrée qui donnent la même sortie.

 Maintenant représenter le résultat de la régression.

Can you write Python code for it?

%%matlab
figure
plot(x,y,'b');
hold on
plot(x,ftheta(theta_chap,x),'r');

    Faites une sauvegarde de cette image, dans un fichier .


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Octave.ipynb".
The first task is:

 Chargeons de nouveau les données:

Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Octave.ipynb".
The first task is:

Maintenant nous allons récuperer les données de “notes” du cours.

Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Octave.ipynb".
The first task is:

Récupérez le nombre de décharges par intervalle de temps dans
    l’essai numéro 1, à l’aide avec la fonction .

Can you write Python code for it?

%%matlab
histo = hist(spike(1).times,centres);


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Octave.ipynb".
The first task is:

 On ouvre une nouvelle fenêtre, dédiée à la visualisation:

Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Octave.ipynb".
The first task is:

Maintenant nous allons ajuster une courbe plus complexe, un cosinus.
    On commence par simuler des données:

Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Octave.ipynb".
The first task is:

On va maintenant définir une fonction de trois paramètres:

Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Octave.ipynb".
The first task is:

Estimez les coefficients de régression à l’aide de la fonction :

Can you write Python code for it?

%%matlab
theta_chap = nlinfit(x, y, ftheta, [0 1 1] );


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Octave.ipynb".
The first task is:
Notez l’utilisation de la commande line.

 On va maintenant ajouter un label sur l’axe des x et y .

 Sauvegardez la figure dans un fichier png (utilisez la commande print), sous le nom figure_dispersion.png

Can you write Python code for it?


I am working on the file "NSC2006/labo1/labo_NSC2006_donnees_multidimentionnelles_Octave.ipynb".
The first task is:
Section 2 : Histogramme
Nous allons continuer l’exploration des données à travers un histogramme
qui résumerait la somme des activations dans un intervalle de temps
donné. Voir le script histograme_essai1.m pour reproduire les commandes suivantes:

Commençons par nettoyer l’espace de travail:

Can you write Python code for it?


I am working on the file "NSC2006/labo2/labo_NSC2006_traitement_signaux-Matlab.ipynb".
The first task is:

 Comparez la réponse à `bloc+impulsion` avec la somme de `bloc_conv` et `impulsion_conv`, en faisant un graphe de la différence des deux signaux. La propriété d'additivité est-elle respectée?

Can you write Python code for it?

%%matlab
somme_reponse = impulsion_conv + bloc_conv;
figure
plot(time_samples,reponse_somme - somme_reponse,'b-o')


I am working on the file "NSC2006/labo2/labo_NSC2006_traitement_signaux-Matlab.ipynb".
The first task is:

 On va maintenant construire un noyau, et appliquer la convolution sur le signal `bloc`

Can you write Python code for it?

%%matlab
noyau = ones(1,3);
noyau = noyau/sum(abs(noyau));
bloc_conv = conv(bloc,noyau,'same');


I am working on the file "NSC2006/labo2/labo_NSC2006_traitement_signaux-Matlab.ipynb".
The first task is:

 Est ce que la propriété de mise à l'échelle est respectée?

On voit que la différence entre `bloc` et `bloc2` est nulle, les deux signaux sont donc identiques. La propriété de mise à l'échelle semble être ici respectée.

 Construisez un nouveau stimulus `impulsion`, contenant une seul impulsion unitaire à l'échantillon numéro 50. Calculez la réponse du système à ce nouveau stimulus, appelée `impulsion_conv`, et représentez-la sur un graphe.

Can you write Python code for it?

%%matlab
impulsion = zeros(size(bloc));
impulsion(50) = 1;
impulsion_conv = conv(impulsion,noyau,'same');
figure
plot(time_samples,impulsion,'b-o')
hold on
plot(time_samples,impulsion_conv,'r-o')


I am working on the file "NSC2006/labo2/labo_NSC2006_traitement_signaux-Matlab.ipynb".
The first task is:
C'est un noyau qui detecte le bords horizontaux de l'image
2- noyau5:
Can you write Python code for it?

%%matlab
noyau5 = tril(-ones(size(noyau4))) + triu(ones(size(noyau4)))
figure
imagesc (noyau5)
colorbar
colormap gray

%%matlab
img5 = conv2(img,noyau5,'same');
figure
imagesc(img,[0 250]); colormap jet; colorbar
figure
imagesc(img5,[0 250]); colormap jet; colorbar


I am working on the file "NSC2006/labo2/labo_NSC2006_traitement_signaux-Matlab.ipynb".
The first task is:
Ce noyau implement un moyenne mobile, le resultat sur l'image est une operation de lissage.
Can you write Python code for it?

%%matlab
noyau2 = ones(20,20);
noyau2 = noyau2/sum(sum(abs(noyau2)));
img2 = conv2(img,noyau2,'same');
figure
imagesc(img,[0 255]); colormap gray; colorbar
figure
imagesc(img2,[0 255]); colormap gray; colorbar


I am working on the file "NSC2006/labo2/labo_NSC2006_traitement_signaux-Matlab.ipynb".
The first task is:
Ce noyau permet une detection des bords veticaux dans l'image

Répétez les deux questions précédentes avec ces autres noyaux:

1- noyau4:
Can you write Python code for it?

%%matlab
noyau4 = noyau3'
figure
imagesc (noyau4); colorbar; colormap gray

%%matlab
img4 = conv2(img,noyau4,'same');
figure
imagesc(img,[0 250]); colormap jet; colorbar
figure
imagesc(img4,[0 250]); colormap jet; colorbar


I am working on the file "NSC2006/labo2/labo_NSC2006_traitement_signaux-Matlab.ipynb".
The first task is:
Faire un graphe avec le noyau.
Can you write Python code for it?

%%matlab
figure
stem(noyau)
axis([0 22 -0.06 0.06 ])


I am working on the file "NSC2006/labo2/labo_NSC2006_traitement_signaux-Matlab.ipynb".
The first task is:
La fonction imagesc() nous permet de visualiser une image binaire comme suit:
Can you write Python code for it?

%%matlab
figure
imagesc(img,[0 255]) % le 2ieme argument ajuste le minimum/maximum
colorbar % Ajoutez une echelle de couleur
colormap gray % Utilisez une echelle en niveau de gris


I am working on the file "NSC2006/labo2/labo_NSC2006_traitement_signaux-Matlab.ipynb".
The first task is:
La réponse à la somme des signaux est identique à la somme des réponses. La propriété d'additivité est ici respectée.

 Répétez la question 8 avec une impulsion localisé à l'échantillon 70. Est ce que la propriété d'invariance dans le temps est respectée?

Can you write Python code for it?

%%matlab
impulsion2 = zeros(size(bloc));
impulsion2(70) = 1;
impulsion2_conv = conv(impulsion2,noyau,'same');
figure
plot(time_samples,impulsion_conv,'r-o')
hold on
plot(time_samples,impulsion2_conv,'b-o')


I am working on the file "NSC2006/labo2/labo_NSC2006_traitement_signaux-Matlab.ipynb".
The first task is:
La taille du bloc?
A l’aide de la ligne bloc(300:500) = 1; , on voit que le bloc contient 201 valeurs non-nulles, avant addition
du bruit.

Quelle est la fréquence d’échantillonnage, en supposant que les
    temps d’acquisition des échantillons sont représentés par
    time_samples en secondes?
A l’aide de la ligne
time_samples = 0.1*(0:1000); on voit que les échantillons
temporels sont séparés de 0.1 s, soit une fréquence
d’échantillonnage de 1 Hz.

Quelle est la durée d’acquisition?
L’enregistrement dure 100
secondes.

Générez un graphe représentant bloc avec l’axe temporel
    adéquat (voir la fonction plot).
Pour générer un graphe avec
l’axe temporel adéquat, on utilise plot avec deux arguments, ainsi que les commandes xlabel et ylabel     pour labéliser les axes.
Can you write Python code for it?

%%matlab
figure
plot(time_samples,bloc)
xlabel('time')
ylabel('a.u.')


I am working on the file "NSC2006/labo2/labo_NSC2006_traitement_signaux-Matlab.ipynb".
The first task is:
Le lissage est plus agressif(floutage), il y a perte de cerataines transitions de contrast dans l'image.

Construisons maintenant un nouveau noyau:
Can you write Python code for it?

%%matlab
noyau3 = [ -ones(5,2) zeros(5,1) ones(5,2) ]
imagesc (noyau3); colorbar; colormap gray


I am working on the file "NSC2006/labo2/labo_NSC2006_traitement_signaux-Matlab.ipynb".
The first task is:
Le signal convolué comporte deux pics importants, qui coincident avec les bords du bloc. une transition de la ligne de base vers le bloc induit une réponse négative, tandis qu'une transition du bloc vers la ligne de base génère une réponse positive.

  On va maintenant construire un signal bloc plus court, et sans bruit, pour illustrer le concept de réponse à une impulsion finie.

Can you write Python code for it?

%%matlab
time_samples = 1*(0:100);
bloc = zeros(size(time_samples));
bloc(30:38) = 1;


I am working on the file "NSC2006/labo2/labo_NSC2006_traitement_signaux-Matlab.ipynb".
The first task is:
Notez l'option d'affichage pour ajouter un marqueur à chaque point de mesure.

Combien de temps met la réponse à atteindre son pic?
On voit que trois points séparent le début du bloc du pic de la réponse. En regardant la définition de time samples, on voit que la fréquence d'échantillonnage est de 1 Hz. La réponse et donc 3 secondes à atteindre son pic.

 Construire un signal similaire à bloc, mais avec une amplitude du bloc deux fois plus grande.

Can you write Python code for it?


I am working on the file "NSC2006/labo2/labo_NSC2006_traitement_signaux-Matlab.ipynb".
The first task is:
On observe que la réponse à `impulsion2` est identique à `impulsion`, décalée dans le temps. La propriété d'invariance temporelle semble respectée.

Section 2 : Convolution d'images

En premier lieu, il faut charger l'image lena_gray_512.tif à l'aide de la fonction imread():
Can you write Python code for it?

%%matlab
img = imread ('lena_gray_512.tif');
img = double(img);


I am working on the file "NSC2006/labo2/labo_NSC2006_traitement_signaux-Matlab.ipynb".
The first task is:
On observe une diminution de la variance du bruit, lié au moyennage.

 Répétez la question précédente en utilisant un noyau de longueur 7, puis 100, puis 300.

Qu'observez-vous?
Can you write Python code for it?

%%matlab
for nn = [7 100 300]
    figure
    noyau = ones(1,nn); noyau = noyau/sum(abs(noyau)); bloc_conv = conv(bloc,noyau,'same');
    hold on, plot(time_samples,bloc,'b'), plot(time_samples,bloc_conv,'r')
end


I am working on the file "NSC2006/labo2/labo_NSC2006_traitement_signaux-Matlab.ipynb".
The first task is:
Quel est la taille du signal?

Le signal bloc est un vecteur ligne de longueur 1001:
Can you write Python code for it?


I am working on the file "NSC2006/labo2/labo_NSC2006_traitement_signaux-Matlab.ipynb".
The first task is:
Quelle est la taille de cette image? son type? Combien y-a-t-il de niveaux de gris dans cette image?
Can you write Python code for it?


I am working on the file "NSC2006/labo2/labo_NSC2006_traitement_signaux-Matlab.ipynb".
The first task is:
Quelle opération est associée avec la convolution avec le noyau?
Ce noyau est un modèle grossier d'une fonction de réponse hémodynamique cérébrale.

  On va maintenant appliquer la convolution avec le noyau au signal `bloc`:

Can you write Python code for it?

%%matlab
bloc_conv = conv(bloc,noyau,'same');


I am working on the file "NSC2006/labo2/labo_NSC2006_traitement_signaux-Matlab.ipynb".
The first task is:
Quelle opération est associée avec la convolution basée sur ce noyau?
Ce noyau est sensible aux variations entre échantillons temporels voisins.

Superposez les signaux bloc et bloc_conv sur un même graphe. Qu'observez-vous?
Can you write Python code for it?

%%matlab
figure
plot(time_samples,bloc,'b')
hold on
plot(time_samples,bloc_conv,'r')


I am working on the file "NSC2006/labo2/labo_NSC2006_traitement_signaux-Matlab.ipynb".
The first task is:
Quelle opération est associée avec la convolution basée sur ce noyau?
Ce noyau implémente une moyenne mobile.

Superposez les signaux bloc et bloc_conv sur un même graphe. Qu'observez-vous?
Can you write Python code for it?


I am working on the file "NSC2006/labo2/labo_NSC2006_traitement_signaux-Matlab.ipynb".
The first task is:
Section 1 : Convolution de signaux temporels

 Commençons par générer un signal de type `bloc`, auquel on rajoute un bruit gaussien:

Can you write Python code for it?

%%matlab
time_samples = 0.1*(0:1000);
bloc = zeros(size(time_samples));
bloc(300:500) = 1;
bloc = bloc + sqrt(0.01)*randn(size(time_samples));


I am working on the file "NSC2006/labo2/labo_NSC2006_traitement_signaux-Matlab.ipynb".
The first task is:
Visualisez le noyau avec la commande imagesc.
Can you write Python code for it?

%%matlab
imagesc(noyau1)
colorbar
colormap gray


I am working on the file "NSC2006/labo2/labo_NSC2006_traitement_signaux-Matlab.ipynb".
The first task is:
Visualisez les deux images, avant et après la convolution, en prenant soin d'utiliser les mêmes valeurs min et max dans les deux cas. Quelle opération implémente ce noyau? Que remarquez vous sur l'image convoluée?
Can you write Python code for it?

%%matlab
figure
imagesc(img,[0 255]); colormap gray; colorbar
figure
imagesc(img1,[0 255]); colormap gray; colorbar


I am working on the file "NSC2006/labo2/labo_NSC2006_traitement_signaux-Matlab.ipynb".
The first task is:
l'image et de dimention 250x250 et de type binaire, elle a 250 niveau de gris

Nous allons maintenant créer un noyau pour la convolution, qui est une autre petite image définissant les poids d'une moyenne pondérée dans chaque petit carré (ici, 5x5) de l'image:
Can you write Python code for it?

%%matlab
noyau1 = ones(5,5);
noyau1 = noyau1/sum(sum(abs(noyau1)));


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage reponses 0.3.ipynb".
The first task is:
2.2 Répétez la question 2.1 avec un noyau plus gros.
Commentez qualitativement sur la qualité du débruitage.
Can you write Python code for it?

%%matlab
%%définition d'un noyau de moyenne mobile
% taille de la fenêtre pour la moyenne mobile, en nombre d'échantillons temporels
taille = ceil(6*freq);
% le noyau, défini sur une fenêtre identique aux signaux précédents
noyau = [zeros(1,(length(signal)-taille)/2) ones(1,taille) zeros(1,(length(signal)-taille)/2)];
% normalisation du moyau
noyau = noyau/sum(abs(noyau));
% convolution avec le noyau (filtrage)
y_f = conv(y_sr,noyau,'same');

%% Représentation fréquentielle du filtre
figure
Analyse_Frequence_Puissance(noyau,ech);
ylim([10^(-10) 1])

%% représentation du signal filtré
figure
plot(ech,y_f,'k')
hold on
plot(ech,signal,'r')

%% erreur résiduelle
err = sqrt(mean((signal-y_f).^2))


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage reponses 0.3.ipynb".
The first task is:
2.3 Nous allons maintenant appliquer des filtres de Butterworth.
Ces filtres sont disponibles dans des fonctions que vous avez déjà utilisé lors du laboratoire sur la transformée de Fourier:
 - FiltrePasseHaut.m: suppression des basses fréquences.
 - FiltrePasseBas.m: suppression des hautes fréquences.
Le filtre de Butterworth n'utilise pas explicitement un noyau de convolution. Mais comme il s'agit d'un systéme linéaire invariant dans le temps, on peut toujours récupérer le noyau en regardant la réponse à une impulsion finie unitaire. Représentez le noyau en temps et en fréquence. Quelle est la fréquence de coupure du filtre?
Can you write Python code for it?

%%matlab

%% Définition d'une implusion finie unitaire
impulsion = zeros(size(signal));
impulsion(round(length(impulsion)/2))=1;
noyau = FiltrePasseHaut(impulsion,freq,0.1);

%% représentation temporelle
figure
plot(ech,noyau)
xlabel('Temps (s)')
ylabel('a.u')

%% représentation fréquentielle
figure
Analyse_Frequence_Puissance(noyau,ech);
set(gca,'yscale','log');


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage reponses 0.3.ipynb".
The first task is:
2.5. Optimisation du filtre de Butterworth.
Trouvez une combinaison de filtre passe-haut et de filtre passe-bas de Butterworth qui permette d'améliorer l'erreur résiduelle par rapport au filtre de moyenne mobile. Faire un graphe représentant le signal d'intérêt (signal) superposé au signal filtré, et un second avec le signal d'intérêt superposé au signal bruité, pour référence.
Can you write Python code for it?

%%matlab
y = y_sr;

%%définition d'un noyau de moyenne mobile
% taille de la fenêtre pour la moyenne mobile, en nombre d'échantillons temporels
taille = ceil(6*freq);
% le noyau, défini sur une fenêtre identique aux signaux précédents
noyau = [zeros(1,(length(signal)-taille)/2) ones(1,taille) zeros(1,(length(signal)-taille)/2)];
% normalisation du moyau
noyau = noyau/sum(abs(noyau));
% convolution avec le noyau (filtrage)
y_f = conv(y,noyau,'same');

%% représentation du signal brut
figure
plot(ech,signal,'r')
hold on
plot(ech,y,'k')

%% représentation du signal filtré
figure
plot(ech,y_f,'k')
hold on
plot(ech,signal,'r')
err = sqrt(mean((signal-y_f).^2))

%% filtre de Butterworth
y_f = FiltrePasseHaut(y,freq,0.08);
y_f = y_f+FiltrePasseBas(y,freq,0.12);

%% représentation du signal filtré
figure
plot(ech,signal,'r')
hold on
plot(ech,y_f,'k')
err = sqrt(mean((signal-y_f).^2))


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage reponses 0.3.ipynb".
The first task is:
2.6 Optionnel: autres exemples.
Recommencez les questions 2.1 et 2.5, avec les signaux y_srb et y_srbb.
Can you write Python code for it?

%%matlab
y = y_srb;

%%définition d'un noyau de moyenne mobile
% taille de la fenêtre pour la moyenne mobile, en nombre d'échantillons temporels
taille = ceil(6*freq);
% le noyau, défini sur une fenêtre identique aux signaux précédents
noyau = [zeros(1,(length(signal)-taille)/2) ones(1,taille) zeros(1,(length(signal)-taille)/2)];
% normalisation du moyau
noyau = noyau/sum(abs(noyau));
% convolution avec le noyau (filtrage)
y_f = conv(y,noyau,'same');

%% représentation du signal brut
figure
plot(ech,signal,'r')
hold on
plot(ech,y,'k')

%% représentation du signal filtré
figure
plot(ech,y_f,'k')
hold on
plot(ech,signal,'r')

%% erreur résiduelle
err = sqrt(mean((signal-y_f).^2))

%signal+base+resp+bruit
y_f = FiltrePasseBas(y,freq,0.08);

%% représentation du signal filtré
figure
plot(ech,signal,'r')
hold on
plot(ech,y_f,'k')
err = sqrt(mean((signal-y_f).^2))

%%matlab
y = y_srbb;

%%définition d'un noyau de moyenne mobile
% taille de la fenêtre pour la moyenne mobile, en nombre d'échantillons temporels
taille = ceil(6*freq);
% le noyau, défini sur une fenêtre identique aux signaux précédents
noyau = [zeros(1,(length(signal)-taille)/2) ones(1,taille) zeros(1,(length(signal)-taille)/2)];
% normalisation du moyau
noyau = noyau/sum(abs(noyau));
% convolution avec le noyau (filtrage)
y_f = conv(y,noyau,'same');

%% représentation du signal brut
figure
plot(ech,signal,'r')
hold on
plot(ech,y,'k')

%% représentation du signal filtré
figure
plot(ech,y_f,'k')
hold on
plot(ech,signal,'r')

%% erreur résiduelle
err = sqrt(mean((signal-y_f).^2))

%signal+base+resp+bruit
y_f = FiltrePasseHaut(y,freq,0.02);
y_f = FiltrePasseBas(y_f,freq,0.08);

%% représentation du signal filtré
figure
plot(ech,signal,'r')
hold on
plot(ech,y_f,'k')
err = sqrt(mean((signal-y_f).^2))


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage reponses 0.3.ipynb".
The first task is:
3. Répétez les questions 1.1 et 1.2 avec un bruit dit blanc, généré ci dessous.
Pourquoi est ce que ce bruit porte ce nom?
Can you write Python code for it?

%%matlab

%% définition du bruit blanc
bruit = 0.05*randn(size(signal));

%% représentation en temps
figure
plot(ech,bruit)
ylim([-0.6 0.7])
xlabel('Temps (s)')
ylabel('a.u')

%% représentation en fréquences
figure
Analyse_Frequence_Puissance(bruit,ech);
ylim([10^(-10) 1])


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage reponses 0.3.ipynb".
The first task is:
4. Bruit respiratoire.
Répétez les les questions 1.1 et 1.2 avec un bruit dit respiratoire, généré ci dessous. Est ce une simulation raisonnable de variations liées à la respiration? pourquoi?
Can you write Python code for it?

%%matlab

%% définition du signal de respiration
% fréquence de la respiration
freq_resp = 0.3;
% un modéle simple (cosinus) des fluctuations liées à la respiration
resp = cos(2*pi*freq_resp*ech/freq);
% fréquence de modulation lente de l'amplitude respiratoire
freq_mod = 0.01;
% modulation de l'amplitude du signal lié à la respiration
resp = resp.*(ones(size(resp))-0.1*cos(2*pi*freq_mod*ech/freq));
% on force une moyenne nulle, et une amplitude max de 0.1
resp = 0.1*(resp-mean(resp));

%% représentation en temps
figure
plot(ech,resp)
xlim([-1 max(ech)/2+1])
xlabel('Temps (s)')
ylabel('a.u')

%% représentation en fréquences
figure
[ech_f,signal_f,signal_af,signal_pu] = Analyse_Frequence_Puissance(resp,ech);
set(gca,'yscale','log');
ylim([10^(-35) 1])


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage reponses 0.3.ipynb".
The first task is:
5. Ligne de base.
Répétez les les questions 1.1 et 1.2 avec une dérive de la ligne de base, telle que générée ci dessous.
Can you write Python code for it?

%%matlab

%% définition de la ligne de base
base = 0.1*(ech-mean(ech))/mean(ech);

%% représentation en temps
figure
plot(ech,base)
xlim([-1 max(ech)+1])
ylim([-0.6 0.7])
xlabel('Temps (s)')
ylabel('a.u')

%% représentation en fréquence
figure
[ech_f,base_f,base_af,base_pu] = Analyse_Frequence_Puissance(base,ech);
ylim([10^(-10) 1])


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage reponses 0.3.ipynb".
The first task is:
Section 1: Exemple de signaux, temps et fréquence
1. Commençons par générer un signal d'intêret:
Représentez noyau et signal en temps, à l'aide de la commande plot. Utiliser les temps d'acquisition corrects, et labéliser les axes (xlabel, ylabel). Comment est généré signal? reconnaissez vous le processus employé? Est ce que le signal est périodique? si oui, quelle est sa période? Peut-on trouver la réponse dans le code?
2. Représenter le contenu fréquentiel de signal avec la commande Analyse_Frequence_Puissance.
Utilisez la commande ylim pour ajuster les limites de l'axe y et pouvoir bien observer le signal. Notez que l'axe y (puissance) est en échelle log (dB). Quelles sont les fréquences principales contenues dans le signal? Etait-ce attendu?
Can you write Python code for it?

%%matlab

%% Définition du signal d'intêret
% fréquence du signal
freq = 0.3;
% on crée des blocs off/on de 15 secondes
bloc = repmat([zeros(1,15*freq) ones(1,15*freq)],[1 10]);
% les temps d'acquisition
ech = (0:(1/freq):(length(bloc)/freq)-(1/freq));
% ce paramètre fixe le pic de la réponse hémodynamique
pic = 5;
% noyau de réponse hémodynamique
noyau = [linspace(0,1,(pic*freq)+1) linspace(1,-0.3,(pic*freq)/2) linspace(-0.3,0,(pic*freq)/2)];
noyau = [zeros(1,length(noyau)-1) noyau];
% normalisation du noyau
noyau = noyau/sum(abs(noyau));
% convolution du bloc avec le noyau
signal = conv(bloc,noyau,'same');
% on fixe la moyenne de la réponse à zéro
signal = signal - mean(signal);

%% représentation en temps
figure
plot(ech,signal)
xlim([-1 max(ech)+1])
ylim([-0.6 0.7])
xlabel('Temps (s)')
ylabel('a.u')

%% représentation en fréquences
figure
Analyse_Frequence_Puissance(signal,ech);
ylim([10^(-10) 1])


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage reponses 0.3.ipynb".
The first task is:
Section 2: Optimisation de filtre
2.1. Nous allons commencer par appliquer un filtre de moyenne mobile, avec le signal le plus simple (y_sr).
Pour cela on crée un noyau et on applique une convolution, comme indiqué ci dessous. Représentez le noyau en fréquence (avec Analyse_Frequence_Puissance), commentez sur l'impact fréquentiel de la convolution. Faire un deuxième graphe représentant le signal d'intérêt superposé au signal filtré.
Can you write Python code for it?

%%matlab
%%définition d'un noyau de moyenne mobile
% taille de la fenêtre pour la moyenne mobile, en nombre d'échantillons temporels
taille = ceil(3*freq);
% le noyau, défini sur une fenêtre identique aux signaux précédents
noyau = [zeros(1,(length(signal)-taille)/2) ones(1,taille) zeros(1,(length(signal)-taille)/2)];
% normalisation du moyau
noyau = noyau/sum(abs(noyau));
% convolution avec le noyau (filtrage)
y_f = conv(y_sr,noyau,'same');

%% Représentation fréquentielle du filtre
figure
Analyse_Frequence_Puissance(noyau,ech);
ylim([10^(-10) 1])

%% représentation du signal filtré
figure
plot(ech,y_f,'k')
hold on
plot(ech,signal,'r')

%% erreur résiduelle
err = sqrt(mean((signal-y_f).^2))


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage reponses.ipynb".
The first task is:
A partir du graphe du noyau, on reconnait la fonction de réponse hémodynamique utilisée lors du laboratoire sur la convolution. Le signal est généré par convolution du noyau avec un vecteur bloc (ligne 18 du bloc de code initial). On voit que bloc est créé en assemblant deux vecteurs de 15 zéros et de 15 uns (ligne 7). Le signal est donc périodique. Comme la fréquence d'acquisition est de 1 Hz (ligne 9 définissant les échantillons temporels, on voit un pas de 1/freq, avec freq=1, ligne 5), la période du signal est de 30 secondes, soit une fréquence de 0.033Hz. On peut confirmer cela visuellement sur le graphe.
2. Représenter le contenu fréquentiel de signal avec la commande Analyse_Frequence_Puissance.
Utilisez la commande ylim pour ajuster les limites de l'axe y et pouvoir bien observer le signal. Notez que l'axe y (puissance) est en échelle log (dB). Quelles sont les fréquences principales contenues dans le signal? Etait-ce attendu?
Can you write Python code for it?

%%matlab
%% représentation en fréquences
% Nouvelle figure
figure
% La fonction utilise le signal comme premier argument, et les échantillons temporels comme deuxième
Analyse_Frequence_Puissance(signal,ech);
% On ajuste l'échelle de l'axe y.
ylim([10^(-10) 1])


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage reponses.ipynb".
The first task is:
Avec une fréquence de coupure de 0.1 Hz, on perd de nombreux pics de signal, notamment celui situé à 0.16Hz. Effectivement dans la représentation en temps on voit que les variations rapides de signal sont perdues, et l'erreur résiduelle est de 6%.
2.5. Optimisation du filtre de Butterworth.
Trouvez une combinaison de filtre passe-haut et de filtre passe-bas de Butterworth qui permette d'améliorer l'erreur résiduelle par rapport au filtre de moyenne mobile. Faire un graphe représentant le signal d'intérêt (signal) superposé au signal filtré, et un second avec le signal d'intérêt superposé au signal bruité, pour référence.
Can you write Python code for it?

%%matlab
y = y_sr;

%% filtre de Butterworth
% on combine une passe-haut et un passe-bas, de maniére à retirer uniquement les fréquences autour de 0.3 Hz
y_f = FiltrePasseHaut(y,freq,0.35);
y_f = y_f+FiltrePasseBas(y,freq,0.25);

%% représentation du signal filtré
figure
plot(ech,signal,'r')
hold on
plot(ech,y_f,'k')
err = sqrt(mean((signal-y_f).^2))

%% représentation du signal brut
figure
plot(ech,signal,'r')
hold on
plot(ech,y,'k')


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage reponses.ipynb".
The first task is:
Comme attendu, étant donné le caractère périodique de période 30s du signal, la fréquence principale est de 0.033 Hz. Les pics suivants sont situés à 0.1 Hz et 0.166 Hz.
3. Répétez les questions 1.1 et 1.2 avec un bruit dit blanc, généré ci dessous.
Can you write Python code for it?

%%matlab

%% définition du bruit blanc
bruit = 0.05*randn(size(signal));


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage reponses.ipynb".
The first task is:
Est ce une simulation raisonnable de variations liées à la respiration? pourquoi?
On voit que ce signal est essentiellement composé de fréquences autour de 0.3Hz. Cela était déjà apparent avec l'introduction d'un cosinus de fréquence 0.3Hz dans la génération (ligne 7). L'amplitude de ce cosinus est elle-même modulée par un autre cosinus, plus lent (ligne 11). D'aprés wikipedia, un adulte respire de 16 à 20 fois par minutes, soit une fréquence de 0.26 à 0.33Hz (en se ramenant en battements par secondes). Cette simulation utilise donc une fréquence raisonnable pour simuler la respiration.
5. Ligne de base.
Répétez les les questions 1.1 et 1.2 avec une dérive de la ligne de base, telle que générée ci dessous.
Can you write Python code for it?

%%matlab

%% définition de la ligne de base
base = 0.1*(ech-mean(ech))/mean(ech);

%%matlab

% Ce code n'est pas commenté, car essentiellement identique
% à ceux présentés en question 1.1. et 1.2.

%% représentation en temps
figure
plot(ech,base)
xlim([-1 max(ech)+1])
ylim([-0.6 0.7])
xlabel('Temps (s)')
ylabel('a.u')

%% représentation en fréquence
figure
[ech_f,base_f,base_af,base_pu] = Analyse_Frequence_Puissance(base,ech);
ylim([10^(-10) 1])


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage reponses.ipynb".
The first task is:
L'addition du bruit blanc ajoute des variations aléatoires dans la totalité du spectre et, hormis les pics du spectre associé à signal, il devient difficile de distinguer la contribution de resp.
Can you write Python code for it?

%%matlab
% Idem au code précédent, y_srb est remplacé par y_srbb dans la ligne suivante.
y = y_srbb;
% représentation en temps
figure
plot(ech,y)
hold on
plot(ech,signal,'r')
xlim([-1 301])
ylim([-0.8 0.8])
xlabel('Temps (s)')
ylabel('a.u')

% représentation en fréquence
figure
[freq_f,y_f,y_af,y_pu] = Analyse_Frequence_Puissance(y,ech);
ylim([10^(-10) 1])


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage reponses.ipynb".
The first task is:
Le vecteur base est une fonction linéaire du temps (ligne 4). En représentation fréquentielle, il s'agit d'un signal essentiellement basse fréquence.
6. Mélange de signaux.
On va maintenant mélanger nos différentes signaux, tel qu'indiqué ci-dessous. Représentez les trois mélanges en temps et en fréquence, superposé au signal d'intérêt sans aucun bruit (variable signal). Pouvez-vous reconnaitre la contribution de chaque source dans le mélange fréquentiel? Est ce que les puissances de fréquences s'additionnent systématiquement?
Can you write Python code for it?

%%matlab

%% Mélanges de signaux
y_sr   = signal + resp;
y_srb  = signal + resp + bruit;
y_srbb = signal + resp + bruit + base;

%%matlab

% Ce code n'est pas commenté, car essentiellement identique
% à ceux présentés en question 1.1. et 1.2.
% notez tout de même l'utilisation d'un hold on pour superposer la variable `signal` (sans bruit)
% au mélange de signaux.

y = y_sr;
% représentation en temps
figure
plot(ech,y)
hold on
plot(ech,signal,'r')
xlim([-1 301])
ylim([-0.8 0.8])
xlabel('Temps (s)')
ylabel('a.u')

% représentation en fréquence
figure
Analyse_Frequence_Puissance(y,ech);
ylim([10^(-10) 1])


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage reponses.ipynb".
The first task is:
Le vecteur bruit est généré à l'aide de la fonction randn, qui est un générateur pseudo-aléatoires d'échantillons indépendants Gaussiens. Le spectre de puissance représente l'amplitude de la contribution de chaque fréquence au signal. On peut également décomposer une couleur en fréquences. Quand toutes les fréquences sont présentes, et en proportion similaire, on obtient du blanc. Le bruit Gaussien a un spectre de puissance plat (hormis de petites variations aléatoires), ce qui lui vaut son surnom de bruit blanc.
4. Bruit respiratoire.
Répétez les les questions 1.1 et 1.2 avec un bruit dit respiratoire, généré ci dessous.
Can you write Python code for it?

%%matlab

%% définition du signal de respiration
% fréquence de la respiration
freq_resp = 0.3;
% un modéle simple (cosinus) des fluctuations liées à la respiration
resp = cos(2*pi*freq_resp*ech/freq);
% fréquence de modulation lente de l'amplitude respiratoire
freq_mod = 0.01;
% modulation de l'amplitude du signal lié à la respiration
resp = resp.*(ones(size(resp))-0.1*cos(2*pi*freq_mod*ech/freq));
% on force une moyenne nulle, et une amplitude max de 0.1
resp = 0.1*(resp-mean(resp));

%%matlab

% Ce code n'est pas commenté, car essentiellement identique
% à ceux présentés en question 1.1. et 1.2.

%% représentation en temps
figure
plot(ech,resp)
xlim([-1 max(ech)/2+1])
xlabel('Temps (s)')
ylabel('a.u')

%% représentation en fréquences
figure
[ech_f,signal_f,signal_af,signal_pu] = Analyse_Frequence_Puissance(resp,ech);
set(gca,'yscale','log');
ylim([10^(-35) 1])


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage reponses.ipynb".
The first task is:
On voit que ce noyau, en plus de supprimer une fréquence légèrement au dessus de 0.3 Hz, supprime aussi une fréquence proche de 0.16 Hz. C'était l'un des pics que l'on avait identifié dans le spectre de signal. De fait, dans la représentation temporelle, on voit que le signal filtré (en noir) est dégradé: les fluctuations rapides du signal rouge sont perdues. Et effectivement, on a maintenant une erreur résiduelle de 7.6%, supérieure au 3% du filtre précédent.
2.3 Nous allons maintenant appliquer des filtres de Butterworth.
Ces filtres sont disponibles dans des fonctions que vous avez déjà utilisé lors du laboratoire sur la transformée de Fourier:
 - FiltrePasseHaut.m: suppression des basses fréquences.
 - FiltrePasseBas.m: suppression des hautes fréquences.
Le filtre de Butterworth n'utilise pas explicitement un noyau de convolution. Mais comme il s'agit d'un systéme linéaire invariant dans le temps, on peut toujours récupérer le noyau en regardant la réponse à une impulsion finie unitaire.
Can you write Python code for it?

%%matlab

%% Définition d'une implusion finie unitaire
impulsion = zeros(size(signal));
impulsion(round(length(impulsion)/2))=1;
noyau = FiltrePasseHaut(impulsion,freq,0.1);


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage reponses.ipynb".
The first task is:
On voit que cette convolution supprime exactement la fréquence correspondant à la largeur du noyau (3 secondes). Il se trouve que cette fréquence est aussi trés proche de la fréquence respiratoire choisie! Visuellement, le signal filtré est très proche du signal original. La mesure d'erreur (tel que demandée dans la question 2.2. ci dessous est de 3%.
2.2 Répétez la question 2.1 avec un noyau plus gros.
Commentez qualitativement sur la qualité du débruitage.
Can you write Python code for it?

%%matlab

% taille de la fenêtre pour la moyenne mobile, en nombre d'échantillons temporels
% On passe de 3 à 7
% ATTENTION: sous matlab, ce code ne marche qu'avec des noyaux de taille impaire
taille = ceil(6*freq);
% le noyau, défini sur une fenêtre identique aux signaux précédents
noyau = [zeros(1,(length(signal)-taille-1)/2) ones(1,taille) zeros(1,(length(signal)-taille-1)/2)];
% normalisation du moyau
noyau = noyau/sum(abs(noyau));
% convolution avec le noyau (filtrage)
y_f = conv(y_sr,noyau,'same');

%% Représentation fréquentielle du filtre
figure
Analyse_Frequence_Puissance(noyau,ech);
ylim([10^(-10) 1])

%% représentation du signal filtré
figure
plot(ech,y_f,'k')
hold on
plot(ech,signal,'r')

%% erreur résiduelle
err = sqrt(mean((signal-y_f).^2))


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage reponses.ipynb".
The first task is:
Pourquoi est ce que ce bruit porte ce nom?
Can you write Python code for it?

%%matlab
% Ce code n'est pas commenté, car essentiellement identique
% à ceux présentés en question 1.1. et 1.2.
%% représentation en temps
figure
plot(ech,bruit)
ylim([-0.6 0.7])
xlabel('Temps (s)')
ylabel('a.u')

%% représentation en fréquences
figure
Analyse_Frequence_Puissance(bruit,ech);
ylim([10^(-10) 1])


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage reponses.ipynb".
The first task is:
Représentez le noyau en fréquence (avec Analyse_Frequence_Puissance), commentez sur l'impact fréquentiel de la convolution. Faire un deuxième graphe représentant le signal d'intérêt superposé au signal filtré.
Can you write Python code for it?

%%matlab

%% Représentation fréquentielle du filtre
figure
% représentation fréquentielle du noyau
Analyse_Frequence_Puissance(noyau,ech);
ylim([10^(-10) 1])

%% représentation du signal filtré
figure
% signal aprés filtrage
plot(ech,y_f,'k')
hold on
% signal sans bruit
plot(ech,signal,'r')

%% erreur résiduelle
err = sqrt(mean((signal-y_f).^2))


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage reponses.ipynb".
The first task is:
Représentez noyau et signal en temps, à l'aide de la commande plot. Utiliser les temps d'acquisition corrects, et labéliser les axes (xlabel, ylabel). Comment est généré signal? reconnaissez vous le processus employé? Est ce que le signal est périodique? si oui, quelle est sa période? Peut-on trouver la réponse dans le code?
Can you write Python code for it?

%%matlab
%% représentation en temps
% Nouvelle figure
figure
% On commence par tracer le noyau
plot(noyau,'-bo')
% Nouvelle figure
figure
% On trace le signal, en utilisant ech pour spécifier les échantillons temporels
plot(ech,signal)
% Les fonctions xlim et ylim permettent d'ajuster les valeurs min/max des axes
xlim([-1 max(ech)+1])
ylim([-0.6 0.7])
% Les fonctions xlabel et ylabel permettent de labéliser les axes
xlabel('Temps (s)')
ylabel('a.u')


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage.ipynb".
The first task is:
2.2 Répétez la question 2.1 avec un noyau plus gros.
Commentez qualitativement sur la qualité du débruitage. Comparez quantitativement les deux filtres avec une mesure d'erreur résiduelle suivante:
Can you write Python code for it?

%%matlab
err = sqrt(mean((signal-y_f).^2))


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage.ipynb".
The first task is:
5. Ligne de base.
Répétez les les questions 1.1 et 1.2 avec une dérive de la ligne de base, telle que générée ci dessous.
Can you write Python code for it?

%%matlab
%% définition de la ligne de base
base = 0.1*(ech-mean(ech))/mean(ech);


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage.ipynb".
The first task is:
6. Mélange de signaux.
On va maintenant mélanger nos différentes signaux, tel qu'indiqué ci-dessous. Représentez les trois mélanges en temps et en fréquence, superposé au signal d'intérêt sans aucun bruit (variable signal). Pouvez-vous reconnaitre la contribution de chaque source dans le mélange fréquentiel? Est ce que les puissances de fréquences s'additionnent systématiquement?
Can you write Python code for it?

%%matlab
%% Mélanges de signaux
y_sr   = signal + resp;
y_srb  = signal + resp + bruit;
y_srbb = signal + resp + bruit + base;


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage.ipynb".
The first task is:
Représentez le noyau en temps et en fréquence. Quelle est la fréquence de coupure du filtre?
2.4. Application du filtre de Butterworth.
L'exemple ci dessous filtre le signal avec un filtre passe bas, avec une fréquence de coupure de 0.1:
Can you write Python code for it?

%%matlab
y = y_sr;
y_f = FiltrePasseBas(y,freq,0.1);


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage.ipynb".
The first task is:
Représentez noyau et signal en temps, à l'aide de la commande plot. Utiliser les temps d'acquisition corrects, et labéliser les axes (xlabel, ylabel). Comment est généré signal? reconnaissez vous le processus employé? Est ce que le signal est périodique? si oui, quelle est sa période? Peut-on trouver la réponse dans le code?
2. Représenter le contenu fréquentiel de signal avec la commande Analyse_Frequence_Puissance.
Utilisez la commande ylim pour ajuster les limites de l'axe y et pouvoir bien observer le signal. Notez que l'axe y (puissance) est en échelle log (dB). Quelles sont les fréquences principales contenues dans le signal? Etait-ce attendu?
3. Répétez les questions 1.1 et 1.2 avec un bruit dit blanc, généré ci dessous.
Pourquoi est ce que ce bruit porte ce nom?
Can you write Python code for it?

%%matlab
%% définition du bruit blanc
bruit = 0.05*randn(size(signal));


I am working on the file "NSC2006/labo8_filtrage/labo 8 Introduction au filtrage.ipynb".
The first task is:
Section 1: Exemple de signaux, temps et fréquence
1. Commençons par générer un signal d'intêret:
Can you write Python code for it?

%%matlab

%% Définition du signal d'intêret
% fréquence du signal
freq = 1;
% on crée des blocs off/on de 15 secondes
bloc = repmat([zeros(1,15*freq) ones(1,15*freq)],[1 10]);
% les temps d'acquisition
ech = (0:(1/freq):(length(bloc)/freq)-(1/freq));
% ce paramètre fixe le pic de la réponse hémodynamique
pic = 5;
% noyau de réponse hémodynamique
noyau = [linspace(0,1,(pic*freq)+1) linspace(1,-0.3,(pic*freq)/2) linspace(-0.3,0,(pic*freq)/2)];
noyau = [zeros(1,length(noyau)-1) noyau];
% normalisation du noyau
noyau = noyau/sum(abs(noyau));
% convolution du bloc avec le noyau
signal = conv(bloc,noyau,'same');
% on fixe la moyenne de la réponse à zéro
signal = signal - mean(signal);


I am working on the file "NSM_test_suite.ipynb".
The first task is:
Compared to a SYGMA run:
Can you write Python code for it?

# Compute the number of NS merger progenitors in one of the SYGMA runs (normalize to mgal)
A_imf = mtot / s_001._imf(imf0, imf1, 2)
N_sim = A_imf * s_001._imf(nsm_l, imf1, 1)

print 'Theoretical number of neutron star progenitors: ', N_nsm
print 'Number of neutron star progenitors in SYGMA run: ', N_sim
print 'Ratio (should be ~1): ', N_sim / N_nsm


I am working on the file "NSM_test_suite.ipynb".
The first task is:
Initialisation
Can you write Python code for it?

# Do a SYGMA run for each NuGrid metallicity

s_02 = s.sygma(iniZ=0.02, imf_type='salpeter')
s_01 = s.sygma(iniZ=0.01, imf_type='salpeter')
s_006 = s.sygma(iniZ=0.006, imf_type='salpeter')
s_001 = s.sygma(iniZ=0.001, imf_type='salpeter')
s_0001 = s.sygma(iniZ=0.0001, imf_type='salpeter')

# Show the number of neutron star mergers at each timestep; should not be negative, and should be roughly equal!

print np.sum(s_02.history.nsm_numbers)
print np.sum(s_01.history.nsm_numbers)
print np.sum(s_006.history.nsm_numbers)
print np.sum(s_001.history.nsm_numbers)
print np.sum(s_0001.history.nsm_numbers)


I am working on the file "NSM_test_suite.ipynb".
The first task is:
The total number of NS merger progenitors $N_{12}$ is then:
$N_{12} = \frac{k_N}{1.35}(8^{-1.35} - 100^{-1.35})$
Can you write Python code for it?

# Compute the total number of neutron star merger progenitors as defined above
N_nsm = (k_N/1.35) * (nsm_l**-1.35 - imf1**-1.35)


I am working on the file "NWB pvc-6 use-case.ipynb".
The first task is:
Open a file and inspect its content
First we inspect the file and print out a summary of what is inside.
Can you write Python code for it?

f = File.open("data/pvc-6.nix.h5", FileMode.ReadOnly)

print_stats(f.blocks)

block = f.blocks[0]

print_stats(block.data_arrays)
print_stats(block.multi_tags)


I am working on the file "NWB pvc-7 use-case.ipynb".
The first task is:
Explore Stimulus
Can you write Python code for it?

# get recording tag
recording = block.tags[0]

# stimulus combinations array
stimulus = recording.features[0].data

# display the stimulus conditions
for label in stimulus.dimensions[0].labels:
    print label + ' :',
print '\n'

# actual stimulus condition values
for cmb in stimulus.data[:]:
    for x in cmb:
        print "%.2f\t" % x,
    print '\n'

# get particular stimulus combination
index = 2
print "a stimulus combination %s" % str(stimulus.data[index])

# find out when stimulus was displayed
start = recording.position[index]
end = recording.extent[index]

print "was displayed from frame %d to frame %d" % (start, end)